簡述大端模式與小端模式
阿新 • • 發佈:2018-11-09
大端模式與小端模式
由來
在C語言資料型別除char為8位外,還有16位,32位,64位等。那麼對於16位或者32位的處理器,一次處理的多於8位,所以要對位元組排列組合一下。也就有了大端儲存格式和小端儲存格式。
儲存格式
- 大端儲存(Little-endian)格式:
在這種模式中,字資料的高位元組儲存在低地址中,而字資料的低位元組則存放在高地址中。 - 小端儲存(Big-endian)格式:
與大端儲存模式相反,在小端儲存模式中,低地址中存放的是字資料的低位元組,高地址存放的是字資料的高位元組。
簡單來說:大端——高尾端,小端——低尾端
舉個例子,比如數字 0x12 34 56 78在記憶體中的表示形式為:
大端模式:
低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78小端模式:
低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
可見,大端模式和字串的儲存模式類似。
檢測你的是大端還是小端。m=22,n=11小端,反之大端。
#include <stdio.h> int main(void) { short int a=0x1122; int m,n; m=*((char*)&a); n=*((char*)&a+1); printf("m=%x\n",m); printf("n=%x\n",n); return 0; }