字节顺序。这些字节将如何表示?
Endianness order. How will these bytes be represented?
给定十六进制字节 0x12345678,使用大端顺序将字节复制到内存。
地址内容
0x00400003 0x78
0x00400002 0x56
0x00400001 0x34
0x00400000 0x12
对吗?
在big-endian中,最重要的字节(12
)应该排在第一位,然后其余的字节应该按重要性降序排列。
如果给定的数字是大端字节顺序(可能是),你的解决方案是正确的,因为它看起来像这样:
00400000|00400001|00400002|00400003
--------+--------+--------+--------
12 | 34 | 56 | 78
如果必须以小端方式排列字节,则排列将相反:
00400000|00400001|00400002|00400003
--------+--------+--------+--------
78 | 56 | 34 | 12
注意,在这种排列中,只有bytes的顺序颠倒了,但是nibbles的顺序(4位区域=十六进制数字)保持不变。
您可以在 this Wikipedia page about endianness 中阅读更多内容。
给定十六进制字节 0x12345678,使用大端顺序将字节复制到内存。
地址内容
0x00400003 0x78
0x00400002 0x56
0x00400001 0x34
0x00400000 0x12
对吗?
在big-endian中,最重要的字节(12
)应该排在第一位,然后其余的字节应该按重要性降序排列。
如果给定的数字是大端字节顺序(可能是),你的解决方案是正确的,因为它看起来像这样:
00400000|00400001|00400002|00400003
--------+--------+--------+--------
12 | 34 | 56 | 78
如果必须以小端方式排列字节,则排列将相反:
00400000|00400001|00400002|00400003
--------+--------+--------+--------
78 | 56 | 34 | 12
注意,在这种排列中,只有bytes的顺序颠倒了,但是nibbles的顺序(4位区域=十六进制数字)保持不变。
您可以在 this Wikipedia page about endianness 中阅读更多内容。