大小端模式与高低字节,网络字节序

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

比如0x12345678如何存储:

Big Endian

   低地址                                            高地址
   ---------------------------------------------------->
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     12     |      34    |     56      |     78    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Little Endian

   低地址                                            高地址
   --------------------------------------------------->
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     78     |      56    |     34      |     12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PC机一般是小端模式


网络字节顺序:(Big Endian也称为网络字节序)是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端)排序方式。规定:在网络上传输的数据必须以大端模式发送

网络字节顺序:向上面所讲分为大端小端,决定于操作系统或CPU


 一个16进制数有两个字节组成,例如:0x12345678。
高字节就是指16进制数的前8位(权重高的8位),如上例中的0x1234。
低字节就是指16进制数的后8位(权重低的8位),如上例中的0x5678。

猜你喜欢

转载自www.cnblogs.com/xuefyre/p/9498414.html