這是一篇沒多少新意的文章,對big endian和little endian熟悉的人沒必要看,免得浪費時間。
1、概念
所謂大端小端,指的是對於多位元組的資料型別(比如,int)在記憶體中存放的位元組順序。小端是指低位址的位元組存放的是資料的低位,高位址位元組存放的是資料的高位。大端是指低位址位元組存放的是資料的高位,高位址位元組存放資料的高位。簡單地說,低位位元組存放資料的高位就是大端,低位就是小端。
下面是乙個例子,用來說明整數0x12345678在大端小端模式下不同的存放順序。
記憶體位址
小端模式
大端模式
0x5250
0x78
0x12
0x5251
0x56
0x34
0x5252
0x34
0x56
0x5253
0x12
0x78
你可能會想,我是不是搞錯了。但的確沒錯,因為12是資料的高位,78是資料的低位。
2、如何判斷
判斷的基本原理都是取出乙個多位元組資料結構的第乙個位元組,如果該位元組是資料的高位,那麼該機器就是大端;如果該位元組是資料的低位,那麼該機器就是小端。廢話不說,上**。
2.1 指標轉換
#include int isbigendian();
int main()
else
return 0;
}int isbigendian()
return 1;
}
2.2 union
#include int isbigendian();
int main()
else
return 0;
}int isbigendian()
temp;
temp.a = 0x12345678;
if(temp.b == 0x78)
return 1;
}
如何判斷CPU是大端還是小端模式
如何判斷cpu是大端還是小端模式 2010 12 03 23 35 25 分類 c c 在arm體系中,每個字單元包含4個位元組單元或者兩個半字單元。在字單元中,4個位元組哪乙個是高位位元組,哪乙個是低位位元組則有兩種不同的格式 big endian和little endian格式。在小端模式中,低...
如何判斷CPU是大端還是小端模式
在arm體系中,每個字單元包含4個位元組單元或者兩個半字單元。在字單元中,4個位元組哪乙個是高位位元組,哪乙個是低位位元組則有兩種不同的格式 big endian和little endian格式。在小端模式中,低位位元組放在低位址,高位位元組放在高位址 在大端模式中,低位位元組放在高位址,高位位元組...
如何判斷CPU是大端還是小端模式
arm體系中,每個字單元包含4個位元組單元或者兩個半字單元。在字單元中,4個位元組哪乙個是高位位元組,哪乙個是低位位元組則有兩種不同的格式 big endian和little endian格式。在小端模式中,低位位元組放在低位址,高位位元組放在高位址 在大端模式中,低位位元組放在高位址,高位位元組放...