大端/小端就是big-endian/little-endian問題
大端:高位位元組存在高位址上,低位位元組存在低位址上
小端:低位位元組存在高位址上,高位位元組存在低位址上
有兩種常見的方法來判斷是大端還是小端
方法一:使用指標
int x=1;
if((char)&x==1)
printf(「little-endian\n」);
else
printf(「big-endian\n」);
方法二:使用聯合
unionx;
x.i=1;
if(x.c==1)
printf(「little-endian\n」);
else
printf(「big-endian\n」);
下面是乙個圖示:
下面的**是實現大端和小端整數的轉換:
int chgendian(int x)
return x2;
}
大端與小端
網際網路使用網路位元組順序採用大端模式進行編址,大端儲存也稱為網路位元組序,因為tcp ip包在網路中傳輸時都要求以這種次序,以其他形式儲存資料的機器 主機位元組順序根據處理器的不同而不同,如powerpc處理器,使用大端模式,而pentuim處理器使用小端模式 則必須在傳送資料之前把首部轉換成網路...
大端與小端
端模式 endian 的這個詞出自 jonathan swift 書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為 big endian 從尖頭開始將雞蛋敲開的人被歸為 littile endian 小人國的內戰就源於吃雞蛋時是究竟從大頭 big ...
大端與小端
大端表示跟小端表示這兩者的具體意義我老是記不住,當然不是說它的意思不懂,而只是容易搞混。現在記一下,以後就比較有印象了。在c 中,定義乙個int值的時候,它所占用的記憶體是4個位元組,然而這4個位元組裡面,我們如果得到這個int值的記憶體位址,其實就是它的最低位置的位址,如 int a 假設 a的記...