大端小端和網絡序字節序的總結

1.Little endian(LE):將低序字節存儲在起始地址
2.Big endian(BE):將高序字節存儲在起始地址
3.網絡字節順序採用big endian排序方式,包括ip地址或者port端口的設置(需要htons等轉換),指的是內存地址的大端序,即與內存實際存儲的數據位置一致。
將int a=0x1234abcd寫入到以0x0000開始的內存,
   big-endian  little-endian
0x0000  0x12      0xcd
0x0001  0x23      0xab
0x0002  0xab      0x34
0x0003  0xcd      0x12
在x86/arm機器上,發送數據前,查看a的內存得到cd ab 34 12,是小端序。
發送a到網絡上,抓包得到cd ab 34 12,內容是小端序,發送順序與實際地址順序一致,針對於內存地址是大端序。
在x86/arm機器上,接收數據後,查看a的內存得到cd ab 34 12,是小端序。實際打印出來是0x1234abcd(不需要htons等的轉換)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章