本文主要是介绍狗都不学之计算机科学中缺失的内容——大端与小端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
起源
"endian"一词起源于《格列佛游记》,书中人物根据吃鸡蛋时从大头(Big-Endian)吃还是从小头(Little-Endian)而分为两类人,甚至引发了战争。
同样的,在计算机领域中,对于数据的存储和传输,不同的人也产生了不同的观点。目前在各种体系的计算机中通常采用的字节存储机制主要分类两类:大端(Big-Endian
)和小端(Little-Endian
)。
对于Big-Endian和Little-Endian在计算机领域中一致保持着争论。在1980年Danny Cohen在一篇论文中将这种争论比作《格列佛游记》中的两类人。因此这两个术语一直延续到今天。
概念详述
MSB
是Most Significant Bit/Byte
的缩写,含义为最重要的位或者是最重要的字节。简单来讲就是对一个序列起决定性作用的bit/Byte
。例如十进制152
,起最重要的是1
,因为1
位于百位。
LSB
是Least Significant Bit/Byte
的缩写,含义为最不重要的位或者是最不重要的字节。简单来讲就是对一个序列影响最小的bit/Byte
。例如十进制152
,起最不重要的是2
,因为2
位于个位,在某些情况下甚至可以忽略。
例如:十六进制整数0x12345678
,其MSB
就是0x12
,而LSB
为0x78
。(注:这里的LSB
与MSB
中的B
均为Byte
,即字节)
案例详解
Big-Endian
规定MSB
在存储时放在低地址,LSB
在存储时放在高地址。Little-Endian
规定MSB
在存储时放在高地址,LSB
在存储时放在低地址。
参考图如下:
记忆方式
- 大端(
Big-Endian
)可以理解为与字符串的顺序一致(从低到高,从左向右,就像数学中的x轴) - 小端(
Little-Endian
)的存储是反人类的
无情的广告时间
如果喜欢的话,关注我呗!公众号:编码魔坊。谢谢您的支持,爱你!!!
这篇关于狗都不学之计算机科学中缺失的内容——大端与小端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!