您的位置:首页 > 理论基础 > 计算机网络

大端和小端(网络字节序和主机字节序)

2017-06-29 10:10 302 查看
  
大端和小端(网络字节序和主机字节序):

大端(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       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: