梅德辉2017最新消息:什么是大端模式和小端模式?

来源:百度文库 编辑:高考问答 时间:2024/05/04 15:56:41

1、大端模式
  所谓的大端模式,是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
  例子:
  0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000
  0000440: b484 6c4e 004e ed00 0000 0000 0100 0000
  在大端模式下,前16位应该这样读: e6 84 6c 4e ( 假设int占4个字节)
  记忆方法: 地址的增长顺序与值的增长顺序相反.

  2、小端模式
  所谓的小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
  例子:
  0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000
  0000440: b484 6c4e 004e ed00 0000 0000 0100 0000
  在小端模式下,前16位应该这样读: 4e 6c 84 e6( 假设int占4个字节)
  记忆方法: 地址的增长顺序与值的增长顺序相同.

如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。为简单起见,本书使用OP0表示一个32位数据的最高字节MSB(Most Significant Byte),使用OP3表示一个32位数据最低字节LSB(Least Significant Byte)。

---------------------------
地址偏移大端模式小端模式
0x00 12(OP0) 78(OP3)
0x01 34(OP1) 56(OP2)
0x02 56(OP2) 34(OP1)
0x03 78(OP3) 12(OP0)
---------------------------

如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式由下表所示。

---------------------------------
地址偏移大端模式小端模式
0x00 12(OP0) 34(OP1)
0x01 34(OP1) 12(OP0)
-------------------------------------