大小端怎麼判斷?

2021-10-20 04:23:18 字數 577 閱讀 5487

只記小端的就可以。小端和書寫序一致,高->低,左邊是高位。

核心在於用一位元組的char去擷取最高byte/最低byte。

// 方法一:

unsigned

short v =

0x0102

;unsigned

char

*p =

(unsigned

char*)

&v;// 其實就是指標賦值+對記憶體含**釋變化(型別轉換)if(

*p ==

0x01

)printf

("big\n");

elseif(

*p ==

0x02

)printf

("small\n");

// 方法二:利用union的特性

union u

;u u;

u.i=1;

if(u.c==1)

printf

("small\n");

else

printf

("big\n"

);

判斷大小端

int i 1 char p char i if p 1 printf 1 else printf 2 大小端儲存問題,如果小端方式中 i佔至少兩個位元組的長度 則i所分配的記憶體最小位址那個位元組中就存著1,其他位元組是0.大端的話則1在i的最高位址位元組處存放,char是乙個位元組,所以強制將c...

大小端判斷

思路 聯合體union的存放順序是所有成員都從低位址開始存放,利用該特性就可以輕鬆地獲得了 cpu對記憶體採用little endian還是big endian模式讀寫。給出c linux其實也差不了多少 include using namespace std union judge judge f...

大小端判斷

大端模式 big endian 字資料的高位元組儲存在低位址中,而字資料的低位元組則存放在高位址中。小端模式 little endian 字資料的高位元組儲存在高位址中,而字資料的低位元組則存放在低位址中。注意 個人覺得只需記住小端模式低位元組存放在低位址 在這我只總結了兩種方式的大小端判斷 1 採...