怎麼判斷大小端(網路位元組序和主機位元組序)
使用union進行判斷,這裡說一下能用union判斷的理由,union所佔的位元組數是union中成員的最大位元組數,也就是說成員們共用同一塊位址。
#include
void
byteorder()
test;
test.data =
0x0102;if
(test.value[0]
==1&& test.value[1]
==2)//低位高位址
printf
("big endian\n");
else
if(test.value[0]
==2&& test.value[1]
==1)//低位低位址
printf
("little endian\n");
else
printf
("oo\n");
}int
main()
參考遊雙老師 大端和小端(網路位元組序和主機位元組序)
大端和小端 網路位元組序和主機位元組序 大端 big endian 即網路位元組序。小端 littile endian 即主機位元組序。記憶方式 網路的範圍很大,所以大端是網路位元組序。大端方式將高位存放在低位址,小端方式將低位存放在高位址。採用大端方式進行資料存放符合人類的正常思維,而採用小端方式...
大端和小端(網路位元組序和主機位元組序)
大端和小端 網路位元組序和主機位元組序 大端 big endian 即網路位元組序。小端 littile endian 即主機位元組序。記憶方式 網路的範圍很大,所以大端是網路位元組序。大端方式將高位存放在低位址,小端方式將低位存放在高位址。採用大端方式進行資料存放符合人類的正常思維,而採用小端方式...
大端位元組序 小端位元組序(網路位元組序 主機位元組序)
大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...