关于字节序的解释

 

    字节顺序是指多字节类型的数据在内存中的存放顺序, 通常有小端(Little Endian)、大端(Big Endian)两种字节顺序.
    内存地址是由上到下有从左至右依次递增的,小端字节序指低字节位数据存放在内存低地址处, 高字节位数据存放在内存高地址处; 大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处.
    举个例子, 比如数字0x1 2 3 4 5 6 7 8在两种不同字节序CPU中的存储顺序如下所示:
                                       | |               | |
                                       //               //
                                     最高位       最低位

Big Endian(高位存低址 低位存高址)

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


Little Endian(高位存高址 低位存低址)

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

    从上面两图可以看出, 采用Big Endian方式存储数据更符合我们人类的思维习惯. 所有网络协议也都是采用Big Endian的方式来传输数据的. 所以有时我们也会把Big Endian方式称之为网络字节序.

    谈到字节序的问题, 必然牵涉到两大CPU派系. 那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU. PowerPC系列采用Big Endian方式存储数据, 而x86系列则采用Little Endian方式存储数据. 至于为什么CPU解释不同, 可能是由于不同的体系构架在起始竞争时人为地制造和对手不兼容性......
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值