小端大端參考文章
/*
位元組序 -> 多位元組資料在記憶體中的儲存順序, 分為 大端模式 和 小端模式 兩種儲存方法
小端模式 -> 高位元組資料儲存在高位址 速記: 小 (小端) 高 (高位元組) 高 (高位址)
大端模式 -> 高位元組資料儲存在低位址
舉個例子:
對於 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。小人國的內戰就源於吃雞蛋時是...