大端和小端(網路位元組序和主機位元組序)

2021-08-03 04:37:59 字數 1511 閱讀 6072

大端和小端(網路位元組序和主機位元組序):

大端(big endian):即網路位元組序。

小端(littile endian):即主機位元組序。

記憶方式:網路的範圍很大,所以大端是網路位元組序。

大端方式將高位存放在低位址,小端方式將低位存放在高位址。

採用大端方式進行資料存放符合人類的正常思維,而採用小端方式進行資料存放利於計算機處理。

如果將乙個32位的整數0x12345678存放到乙個整型變數(int)中,這個整型變數採用大端或者小端模式在記憶體中的儲存由下表所示。

為簡單起見,本書使用op0表示乙個32位資料的最高位元組msb(most significantbyte),使用op3表示乙個32位資料最低位元組lsb(least significant byte)。

---------------------------

位址偏移 大端模式 小端模式

0x00 

12(op0) 78(op3)

0x01 

34(op1) 56(op2)

0x02 

56(op2) 34(op1)

0x03 

78(op3) 12(op0)

---------------------------

如果將乙個16位的整數0x1234存放到乙個短整型變數(short)中。這個短整型變數在記憶體中的儲存在大小端模式由下表所示。

---------------------------------

位址偏移 大端模式 小端模式

0x00 

12(op0) 34(op1)

0x01 

34(op1) 12(op0)

-------------------------------------

不同的cpu上執行不同的作業系統,位元組序也是不同的,參見下表。

處理器 

作業系統 

位元組排序

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

大端和小端(網路位元組序和主機位元組序)

大端和小端 網路位元組序和主機位元組序 大端 big endian 即網路位元組序。小端 littile endian 即主機位元組序。記憶方式 網路的範圍很大,所以大端是網路位元組序。大端方式將高位存放在低位址,小端方式將低位存放在高位址。採用大端方式進行資料存放符合人類的正常思維,而採用小端方式...

大端位元組序 小端位元組序(網路位元組序 主機位元組序)

大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...

大端位元組序和小端位元組序

簡單介紹 位元組序是由cpu和os對多位元組變數的記憶體儲存順序不同而產生的 小端位元組序 在表示變數的記憶體位址的起始位址存放低位元組,高位元組順序存放 大端位元組序 在表示變數的記憶體位址的起始位址存放高位元組,低位元組順序存放,例如 變數的值0xabcd uint32 t htonl 主機位元...