【问题标题】:Why does endianness exist?为什么存在字节序?
【发布时间】:2018-03-19 04:18:39
【问题描述】:

我一直在学习位旋转(移位、运算符等),并且我了解了字节序的概念。我开始阅读和阅读,不明白为什么机器是用不同类型的字节序构建的。我的意思是,为什么不同机器上的数据解释必须不同?不是所有设备都以相同的方式实现吗?我很难理解这一点,在我看来,拥有 big-endian 和 little-endian 机器只会产生一个原本不存在的问题。你能解释一下为什么首先存在字节序吗?

【问题讨论】:

    标签: format endianness bits byte-order-mark


    【解决方案1】:

    在这里我不会多说,因为我只是重复this,但以下语句是使用小端序的一个优点:

    little-endian 系统的特性是可以从内存中以不同的长度读取相同的值,而无需使用不同的地址(即使施加了对齐限制)。例如,内容为 4A 00 00 00 的 32 位内存位置可以在与 8 位(值 = 4A)、16 位(004A)、24 位(00004A)相同的地址读取) 或 32 位 (0000004A),所有这些都保留相同的数值。虽然高级程序员很少直接使用这种 little-endian 属性,但它经常被代码优化器和汇编语言程序员使用。

    它存在的另一个原因是它似乎在 1960 年代和 1970 年代还没有标准化。一些公司(例如采用 x86 架构的英特尔)决定使用 little-endian(可能是由于上述优化原因),而其他公司则选择了 big-endian。

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2016-02-15
      • 2012-08-14
      • 1970-01-01
      相关资源
      最近更新 更多