大端法和小端法a地方

在C語言中,不同的數據類型佔用的空間是不同的。例如char型的佔用1個字節,而int型佔用4個字節等。

對於多個字節的存儲數據而言,數據的存儲順序的問題就顯示出來了

所以大端法和小端法是 對  多字節   而言的。

不管是大端法還是小端發,數據在內存中的存儲順序都是由低地址到高地址,就是讀取得順序不同。

現在有一個整形數據0x12345678,左邊的是高字節,右邊的是低字節,

如  x (int)  位於 0x100  (指  首地址 的編號  )處,其值 0x01234567  所在 地址空間爲 0x100~0x103 的字節
 大端法    0x100      0x101     0x102    0x103      (高位 在  首地址處,即編號較少的地址空間)     (IBM,SUN 大型機   大部分)
                   01           23           45        67
小端法        67           45            23        01         (低位 在 首地址處,即編號較少的地址空間)       (intel 等pc機   大部分)


首地址指的是編號較小的地址


測試代碼

#include<stdio.h>

int main(int argc,char **argv)

{

int a=0x12345678;

char *p=NULL;

p=(char *) ( &a );

if(*p==0x78)

printf(" The little endlian\n");

else

printf(" The Big endlian\n");

return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章