大端(Big Endian)与小端(Little Endian)详解

"endian"一词来源于乔纳森·斯威夫特的小说格列佛游记。小说中,小人国为水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方分别被称为Big-endiansLittle-endians

1980年,Danny Cohen在其著名的论文"On Holy Wars and a Plea for Peace"中为平息一场关于字节该以什么样的顺序传送的争论而引用了该词。

所谓MSB (Most Significant Byte),名字很复杂,不知是否有人没搞懂,反正我开始看到这个词时候,就很糊涂,有点不完全理解。其实简单说MSB就是,一个数字中,最重要的那位。

举例来说,12004,中文读作,一万两千零四,那最高位的1,就表示了一万,此处就称作MSB,最有意义的位。

MSB想象成鸡蛋的大头,LSB想象成鸡蛋的小头。

对于跨越多个字节的对象,一般它所占的字节都是连续的,它的地址等于它所占字节最低地址。那么,LSBMSB谁位于内存的最低地址, 即谁代表该对象的地址?

其核心问题在于谁(LSB or MSB)代表该对象的地址,即谁占据最低地址字节?

如果LSB(鸡蛋的小头)代表该对象的地址,则机器为小头模式Little Endian.

如果MSB(鸡蛋的大头)代表该对象的地址,则机器为大头模式Big Endian.

比如整数(32位机中一般占4字节),在不同的处理器的存放方式主要有两种,以内存中0x0A0B0C0D的存放方式为例,分别有以下几种方式: 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值