对于跨越多字节的程序对象,我们必须建立两个规则:
这个对象的地址是什么?储存器如何排列这些字节?
在几乎所有的机器上,多字节对象被储存为连续的字节序列,
对象的地址为所使用的整个字节中首地址(最小地址)。
例如:一个int 的变量X的地址为0x100,
那么X被储存在储存器中的0x100,0x101,0x102,0x103的位置。
类似地考虑一个W位的整数,位表示为[Xw-1],[Xw-2],[Xw-3]...[X1],[X0].
其中Xw-1是最高有效位,X0是最低有效位。
假设W是8的倍数,这些位就能被分为字节,其中最高有效字节包含位[Xw-1]...[Xw-8].
最低有效字节包含位[X7]...[X0].其他字节包含中间的位。
某些机器选择在储存器中按照从最低有效字节到最高有效字节的顺序储存对象,此为小端法;
某些机器选择在储存器中按照从最高有效字节到最低有效字节的顺序储存对象,此为大端法;
假设变量X类型为int,位于地址0x100处,它的十六进制值为0x01234567.地址范围为0x100-0x103的字节,其排列顺序依赖机器类型。
大端法:
0x100 0x101 0x102 0x103
01 23 45 67
高位字节的十六进制值为0x01.低位字节的十六进制值为0x67.