只記小端的就可以。小端和書寫序一致,高->低,左邊是高位。
核心在於用一位元組的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 採...