【发布时间】:2019-06-10 13:16:10
【问题描述】:
Dword x 作为一系列字节 123、29 保存到内存中。使用 little endian 的十进制系统中 x 的值是多少?
这个问题的答案是7547。
有人可以一步一步地向我解释吗?我已经知道小端颠倒了顺序,但这并没有给出这个答案。我试图转换到另一个系统,但它仍然给我错误的答案。
【问题讨论】:
-
7547 (decimal) in little endian
DWORD是 7B 1D 00 00,而不仅仅是 7B 1D (123 29)。在大端,它是 00 00 1D 7B。您会看到相同字节值的不同顺序。 -
一个双字在 x86 上是 4 个字节,而不是 2 个。除非你在一个“字”= 1 个字节的假设架构上?在大多数非 x86 ISA 的术语中,“字”是 32 位,而 dword 是 64 位,所以这对其他任何东西也没有意义。也许您的意思是“word”而不是“dword”?
-
无需转换为十六进制并返回。 123 + 29*256 = 7547
标签: assembly decimal endianness dword