big endian and little endian
生活随笔
收集整理的這篇文章主要介紹了
big endian and little endian
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ?big endian(大端)和little endian(小端)表示機器對變量字節的存儲順序。big endian表示低地址存放最高有效字節,little endian表示低地址存放最低有效字節。這里我們還要明白低字節和低地址的含義。
? ? ? ? ? ?一個16進制數0x1234,12表示高字節,34表示低字節。內存中存儲是由低地址到高地址。如果是big endian,則存儲順序為1234;如果是little endian,則存儲順序為3412。網絡協議都是采用big endian的方式來傳輸的,所以數據在發送之前都要進行轉換。
下面給出一個算法判斷系統是big endian還是lilltle endian
代碼來源:后臺開發核心技術與應用實踐
?
#include<stdio.h>//共用體 union TEST {short a;char b[sizeof(short)]; };int main() {TEST test;test.a=0x0102;if(test.b[0]==0x01 && test.b[1]==0x02){printf("big endian\n");}else if(test.b[0]==0x02 && test.b[1]==0x01){printf("little endian\n");}else{printf("unkown\n");}return 0; }打印:little endian
?
這里也學習了union的用法,union同一時間只能存儲一個成員的值,但是每個成員都可以訪問這個值,但是相同的對于不同的數據類型顯示的結果不同。
?
?
?
?
?
總結
以上是生活随笔為你收集整理的big endian and little endian的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 防止头文件的重复包含
- 下一篇: 静态链接库