【问题标题】:Outputting a value as a 4-byte unsigned integer in little endian form以小端形式将值输出为 4 字节无符号整数
【发布时间】:2012-08-01 03:50:52
【问题描述】:

我正在尝试将一个值输出为 4 字节无符号整数(小端形式),但我对某些事情感到困惑。

如果我想以这种形式输出数字 1,它是否显示为:

00000001 00000000 00000000 00000000

10000000 00000000 00000000 00000000

同样,如果我想输出数字 256,它会采用以下形式:

11111111 00000001 00000000 00000000

我只是需要澄清一下。我从互联网上的各个地方读到了一些相互矛盾的东西。

【问题讨论】:

    标签: integer unsigned


    【解决方案1】:

    内存通常表示为一系列离散字节,因此谈论哪些位彼此相邻是没有意义的。这只是显示格式的问题。也就是说,在右侧显示 LSB 是传统的做法,因此在您的示例中是

    00000001 00000000 00000000 00000000
    

    在检查二进制文件时通常使用的十六进制格式,你会得到

    01 00 00 00
    

    另外,在你的第二个例子中,你不小心代表了 511,而不是 256。256 的正确位表示是

    00000000 00000001 00000000 00000000
    

    【讨论】:

      【解决方案2】:

      字节序会影响多字节字中的字节顺序,而不是字节本身中的位顺序。所以1是

      00000001 00000000 00000000 00000000
      

      256 是

      00000000 00000001 00000000 00000000
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-01
        • 2010-12-03
        • 2012-10-30
        • 1970-01-01
        • 2019-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多