使用聯合體來判斷大小端序。
聯合體有個特點剛好可以被利用,
聯合體的成員共用乙個空間。
大端序(大端模式):是指資料的低位儲存在記憶體的高位址中,而資料的高位儲存在記憶體的低位址中。
小端序(小端模式):是指資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址中。
#include
"stdio.h"
intmain()
c; c.a=1;
if(c.b==1)
printf
("it is little_endian!/n");
else
printf
("it is big_endian!/n");
return1;
}
程式裡,a是int型別的,4個位元組,而b是char型別的,乙個位元組。而聯合體是公用乙個空間的。
c.a=0x00 00 00 01;就是說,資料的低位是1 。
然後去判斷c.b是多少。記住,b是char型別,就是說是乙個位元組,要麼是0,要麼是1,那麼到底是多少呢?就要看系統是大端序還是小端序。
小端序的話,也就是說資料的低位儲存在記憶體的低位址中。也就是說是c.b=1 。
反之,就是大端序。
如何判斷大小端
以下是兩種用來檢測系統是大端模式還是小端模式的測試 include int checksystem c c.i 1 if c.ch 1 else int main include include intmain int argc,char argv un un.s 0x0102 if sizeof ...
判斷系統大小端模式
端模式 endian 的這個詞出自jonathan swift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為big endian,從尖頭開始將雞蛋敲開的人被歸為littile endian。小人國的內戰就源於吃雞蛋時是究竟從大頭 big endi...
Linux系統大小端判斷
大小端定義 小端 little endian 低位位元組存放在記憶體的低端位址,高位位元組存放在記憶體的高階位址 大端 big endian 高位位元組存放在記憶體的低端位址,低位位元組存放在記憶體的高階位址。源 原始碼檔案 endian.c 編 譯 gcc o endian endian.c 執 ...