C 大端存儲與小端存儲
大小端
內存地址的排列方式是從小到大的;使用VisualStudio新建main.c,鍵入以下代碼:
#include <stdio.h>
int main() {
//查看變量a的存儲方式
//使用十六進制表示法聲明一個變量a
int a = 0x1234;
printf("a address is:%p\n", &a);
return 0;
}
在最后一行打上斷點,在調試-->窗口-->內存,菜單中隨便選擇一個內存;在下方地址欄輸入&a
可以看到a變量存儲在地址0x0000004DE7AFF834處,變量a的地址范圍在:0x0000004DE7AFF834~0x0000004DE7AFF838(因為整型占四字節),但通常以最小地址作為變量的地址。
題外話:回憶進制、內存的知識
右側存儲變量a的值:34 12 00 00
這里每一個數字都是十六進制,因為4個二進制可以對應一個16進制:1111(b) 是15 ,f(0)是15,所以后來常用一位16進制數代替4位二進制數;
又因為計算機中處理字節是內存管理的最小單元所以34存儲在一個內存單元上,12存儲在一個內存單元上。
小端存儲
以上這種 地址在增大的過程中,先存低有效位、再存高有效位,就稱為“小端存儲”。--我的理解:開頭存儲的是低位有效位
大端存儲
與小端存儲相反,先存高有效位、再存低有效位,稱為“大端存儲”。--這與我們日常閱讀習慣一致。

浙公網安備 33010602011771號