【问题标题】:Confused with endianess: bits or bytes?对字节顺序感到困惑:位还是字节?
【发布时间】:2012-01-14 02:09:38
【问题描述】:

我从教程中提取了这个:

Little-Endian 顺序是我们将在本文档中使用的顺序,除非特别说明,否则您应该假定在任何文件中都使用 Little-Endian 顺序。另一种方法是 Big-Endian 排序。所以让我们看一个例子。取以下流或 8 位 10001110 如果您到目前为止一直在关注文档,您会很快计算出这个 8 位数字的值是 1x2^7 + 0x2^6 + … + 1x2^1 + 0x2 ^0 = 142 这是 Little-Endian 排序的示例。但是,在 Big-Endian 排序中,我们需要读取相反方向的数字 1x2^0 + 0x2^1 + ... + 1x2^6 + 0x2^7 = 113

这对吗?

我曾经认为字节序与读取字节(而不是位)的顺序有关。

【问题讨论】:

    标签: terminology endianness cpu-architecture


    【解决方案1】:

    是的,在内存/存储的上下文中,字节序确实是指 字节 排序(通常)。这么说是什么意思?最不重要的“排在第一位”?

    位字节序在某些情况下是相关的,例如通过串行总线发送数据时。

    【讨论】:

    • 在图形内存中,考虑位字节序也很有用。如果您想在同一空间中存储 1、8、16 或 32 位像素,最容易将所有内存视为从零开始的位序列,因此第一个字节(在 8 位模式下)是位序列 0 到 7,左侧为 0。 (哪一位最重要是一个单独的选择。)
    【解决方案2】:

    你是对的 - 你引用的那句话是垃圾,恕我直言。

    【讨论】:

      【解决方案3】:

      重新排序位是没有意义的,而且启动起来会很混乱。 CPU 不会一次读取单个位,而是一次读取字节或字节组合,因此顺序很重要。

      当它们存储一个由多个字节组成的数字时,它们可以从左到右存储它,使高位字节在内存中最低,或者从右到左,低位字节在内存中最低。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        相关资源
        最近更新 更多