如何判斷機器是大端還是小端

2021-06-21 02:46:22 字數 1017 閱讀 2384

這是一篇沒多少新意的文章,對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格式。在小端模式中,低位位元組放在低位址,高位位元組放在高位址 在大端模式中,低位位元組放在高位址,高位位元組放...