關於大小端模式的說明

1、高字節對應低地址(大端模式)、高字節對應高地址(小端模式)
有些CPU是大端(譬如C51單片機);有些CPU是小端(譬如ARM)。(大部分是用小端模式)


2、用C語言寫一個函數來測試當前機器的大小端模式。


用union來測試機器的大小端模式

union myunion
{
int a;
char b;
};


int is_little_endian(void)
{
union myunion u1;
u1.a = 1;
return u1.b;
}
//分析:返回值爲1,說明低位放在低地址,爲小端模式,否則爲大端模式




指針方式來測試機器的大小端

int is_little_endian2(void)
{
int a = 1;
char b = *((char *)(&a));// 指針方式其實就是共用體的本質


return b;//分析:返回值爲1,說明低位放在低地址,爲小端模式,否則爲大端模式
}

注意:位與、移位、強制類型轉化都不能進行大小端模式測試,因爲這些都是邏輯上的操作,不涉及內存。


在通信協議中,大小端是非常重要的,一般來說,先發低字節叫小端;先發高字節就叫大端。
發佈了49 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章