大端序小端序
摘自《Linux内核编程》
大端序就是指:最高位字节存储在低地址空间,最低位字节存储在随后的3个地址空间中(以32位数据而言)。
小端序和大端序相反:最低位字节存储在地地址空间,最高位字节存储在随后的三个地址空间中(以32位数据而言)。
比如看这个:十六进制数0x12345678的表示:
12 | 34 | 56 | 78 |
0 | 8 | 16 | 24 |
78 | 56 | 34 | 12 |
0 | 8 | 16 | 24 |
备注:0x12345678中 12 是高位,78是低位。
x86体系结构是用小端序。
编程查看自己电脑是大端还是小端:
1 int a = 1; 2 printf("sizeof int : %d\n",sizeof(int)); 3 printf("是大端序吗? %c\n",((char*)&a)[sizeof(int)-1]==1?'y':'n');
代码改自:《大端序,小端序》 这里有详细解释,不再赘述。