理解小端大端儲存模式

2021-09-28 19:22:06 字數 1305 閱讀 7426

小端大端參考文章

/*

位元組序 -> 多位元組資料在記憶體中的儲存順序, 分為 大端模式 和 小端模式 兩種儲存方法

小端模式 -> 高位元組資料儲存在高位址 速記: 小 (小端) 高 (高位元組) 高 (高位址)

大端模式 -> 高位元組資料儲存在低位址

舉個例子:

對於 32位整型資料 0x12345678, 它在大端和小端兩種模式下是這樣儲存的:

低位址 ---------> 高位址

小端: 0x78 0x56 0x34 0x12

大端: 0x12 0x34 0x56 0x78

*/

/*

主機位元組序:

不同的主機有不同的位元組序, 如 x86為小端模式, motorla 6800為大端模式

*/

/*

網路位元組序:

tcp/ip中規定好的一種資料表示格式, 它與具體的 cpu型別作業系統等無關, 從而保證資料在不同主機之間傳輸時能夠被正確解釋

網路位元組序規定, 收到的第乙個位元組被當作高位看待, 這就要求傳送端傳送的第乙個位元組應當是高位。

而在傳送端傳送資料時, 傳送的第乙個位元組是該資料在記憶體中起始位址對應的位元組

可見網路位元組順序採用 big endian(大端)排序方式

*/

/*

位元組序轉換注意事項:

只有在多位元組資料處理時才需要考慮位元組序;

執行在同一臺計算機上的程序相互通訊時,一般不用考慮位元組序;

異構計算機之間通訊, 需要轉換自己的位元組序為網路位元組序

*/

#include using namespace std;

union myunion

;int main()

/* 或者使用共用體實現

myunion munion;

munion._unum = 0x12345678;

for (int i = 0; i < 4; ++i)

*/ return 0;}/*

result: 78563412

從輸出結果可以看出本機採用小端儲存模式, 高位元組 0x12儲存在高位址

*/

大端小端儲存模式

端模式 endian 的這個詞出自jonathan swift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為big endian,從尖頭開始將雞蛋敲開的人被歸為littile endian 這句話最為形象 小人國的內戰就源於吃雞蛋時是究竟從大頭 ...

大端 小端的儲存模式

2017年11月23日 大端 小端的儲存模式 1.大端 如果是將高位元組的資料儲存在低位址,低位元組資料儲存在高位址,這種儲存模式就是大端模式 2.小端 如果是將高位元組的資料儲存在高位址,低位元組資料儲存在低位址,這種儲存模式就是小端模式 3.對大小端模式的測試方法 1 使用union共用體進行測...

儲存器 大端模式與小端模式

開頭講個有關大端小端的故事 端模式 endian 的這個詞出自jonathan swift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為big endian,從尖頭開始將雞蛋敲開的人被歸為littile endian。小人國的內戰就源於吃雞蛋時是...