記憶體位元組序
一.位元組順序:資料在記憶體中的存放順序。分為小端(
little endian
)和大端位元組順序(
big endian
)。資料在記憶體中是乙個位元組乙個位元組來儲存的,因為乙個記憶體單元的大小就為乙個位元組。
1. 小端順序:
低位元組資料存放在記憶體低位址處,高位元組資料存放在記憶體高位址處。
2. 大端順序:高位元組資料存放在低位址處,低位元組資料存放在高位址處。
如int
型資料0x12345678
在記憶體中的存放順序為:
小端順序為:
78 56 34 12
大端順序為:
12 34 56 78
二.主機位元組序
不同的cup
以及不同的作業系統上的位元組序不一樣,這個就叫主機位元組序。
處理器作業系統
位元組排序
alpha
全部little endian
hp-pa nt little endian
hp-pa unix big endian
intelx86
全部little endian <-----x86
系統全是小端位元組序系統
motorola680x
全部big endian
mips nt
little endian
mips unix big endian
powerpc
nt
little endian
powerpc
非nt big endian <-----ppc
系統是大端位元組序系統
rs/6000 unix
big endian
sparc unix
big endian
ixp1200 arm
核心全部
little endian
三.網路位元組序
網路位元組順序是
tcp/ip
中規定好的一種資料表示格式,它與具體的
cpu型別、作業系統等無關,從而可以保證資料在不同主機之間傳輸時能夠被正確解釋。網路位元組順序採用
big endian
排序方式。
記憶體對齊 大端位元組,序小端位元組序驗證
空結構體 對於空結構體,就是只有結構體這個模子,但裡面卻沒有元素的結構體。例 typedef struct student std 這種空結構體的模子佔乙個位元組,sizeof std 1。柔性陣列 結構體中最後乙個元素可以是乙個大小未知的陣列,稱作柔性陣列成員,規定柔性陣列前面至少有乙個元素.ty...
大端位元組序 小端位元組序(網路位元組序 主機位元組序)
大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...
位元組序和網路位元組序
1 位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big e...