大端:又稱高尾部,即數據的尾部放在高字節地址中
小端:又稱低尾部,即數據的尾部放在低字節地址中
例:整數0x12345678用int類型的數來存儲,其中每兩個數字需要一個地址來存放,數據的尾部78,對於大端,即高尾部而言,78應該放在高字節地址;而對於小端,即低尾部而言,78應該放在低地址。
地址 | 大端 | 小端 |
---|---|---|
0x003BFE37 | 78 | 12 |
0x003BFE36 | 56 | 34 |
0x003BFE35 | 34 | 56 |
0x003BFE34 | 12 | 78 |
4. 代碼測試
void test(){
//union:s和c佔用同一塊內存區域
union {
int s;
char c[sizeof(int)];
} un;
un.s = 0x12345678;
if (un.c[0] == 0x78 && un.c[1] == 0x56&&un.c[2]==0x34&&un.c[3]==0x12)
printf("small-endian\n");
else if (un.c[0] ==0x12 && un.c[1] == 0x34&&un.c[2]==0x56&&un.c[3]==0x78)
printf("big-endian\n");
else
printf("unknown\n");
}