32位无符号整数表示的数字4,在大端序机器上是:
00000000 00000000 00000000 00000100(最高有效字节在前)
在小端序机器上是:
00000100 00000000 00000000 00000000(最高有效字节在后)
作为8位无符号整数,它在这两种机器上都表示为00000100。
现在,当将8位无符号整数转换为32位时,我总是认为在大端序机器上就是在现有字节前面添加24个零,并在小端序机器上在末尾添加24个零。但是,有人指出,在这两种情况下都是在前面添加零而不是在末尾添加零。但是,在小端序情况下,00000100不会成为最高有效字节吗?这不会导致一个非常大的数字吗?请解释我哪里错了。
(uint32_t)myByte
的值与myByte
的值相同。 - Oliver Charlesworth