我正在尝试将值输出为 4 字节无符号整数(以小端形式)并且对某些事情感到困惑。
如果我想以这种形式输出数字 1,它是否显示为:
00000001 00000000 00000000 00000000
或者
10000000 00000000 00000000 00000000
同样,如果我想输出数字 256,它会采用以下形式:
11111111 00000001 00000000 00000000
我只需要澄清一下。我从互联网上的各个地方读到了一些相互矛盾的东西。
内存通常表示为一系列离散字节,因此谈论哪些位彼此相邻是没有意义的。这只是显示格式的问题。也就是说,在右侧显示 LSB 是传统的,因此在您的示例中它将是
00000001 00000000 00000000 00000000
在十六进制中,这是您在检查二进制文件时通常使用的,您会得到
01 00 00 00
此外,在您的第二个示例中,您意外地表示了 511,而不是 256。256 的正确位表示是
00000000 00000001 00000000 00000000
字节序会影响多字节字中的字节顺序,而不是字节本身中的位顺序。所以 1 是
00000001 00000000 00000000 00000000
和 256 是
00000000 00000001 00000000 00000000