大端小端概念
小端就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
大端就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:
A. 大端模式:
低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
B. 小端模式:
低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
测试程序
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void checkEndian() 5 { 6 union 7 { 8 int s; 9 char c[4]; 10 }u; 11 12 u.s = 0x12345678; 13 printf("%s ", (0x12 == u.c[0]) ? "大端模式" : "小端模式"); // 这里需要特别注意的就是数组总是从低地址向高地址增长的 14 } 15 16 int main() 17 { 18 checkEndian(); 19 return 0; 20 }