小端字节序与大端字节序
端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序。
小端字节序:低字节存于内存低地址;高字节存于内存高地址。如一个long型数据0x12345678
0x0029f458 0x78
0x0029f459 0x56
0x0029f45a 0x34
0x0029f45b 0x12
在以上数据存放于内存中的表现形式中,0x0029f458 < 0x0029f459 < 0x0029f45a < 0x0029f45b,
可以知道内存的地址是由低到高的顺序;而数据的字节也是由低到高的,故以上字节序是小端字节序。
大端字节序:高字节存于内存低地址;低字节存于内存高地址。
0x0029f458 0x12
0x0029f459 0x34
0x0029f45a 0x56
0x0029f45b 0x79
在以上数据存放于内存中的表现形式中,0x0029f458 < 0x0029f459 < 0x0029f45a < 0x0029f45b,
可以知道内存的地址是由低到高的顺序;而数据的字节却是由高到低的,故以上字节序是大端字节序。
网络字节序:就是大端字节序。规定不同系统间通信一律采用网络字节序。
在VC中的实验如下:
int temp = 0x12345678;
调试中,该变量在内存中的字节数据是78 56 34 12,内存中的存放地址是:0x0029f458,0x0029f459,
0x0029f45a,0x0029f45b;刚好符合低位存于低地址中,说明VC遵循小端字节序。