記憶體位元組序

2021-05-17 18:34:01 字數 1193 閱讀 4320

記憶體位元組序

一.位元組順序:資料在記憶體中的存放順序。分為小端(

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...