Dword 转换为 dec in little endian

Dword conversion to dec in little endian

双字 x 作为字节序列 123、29 保存到内存中。使用小端的十进制系统中 x 的值是多少?

这个问题的答案是7547

谁能一步步给我解释一下?我已经知道 little endian 颠倒了顺序,但这并没有给出这个答案。我尝试转换到另一个系统,但它仍然给我错误的答案。

当你谈论 DWORD 并转换为小端时,我假设你在输入中有一个 32 位值 big-endian 编码。

  1. 让我们转换[123 | 29 | 00 | 00] 到十六进制:[7B |一维 | 00 | 00] => 十进制表示为2065498112

  2. 让我们反转:[00 | 00 |一维 | 7B] => 十进制表示为7547

我想给你一个 Kasper 回答的替代解释:

在十进制系统中,每个数字可以 "store" 从 0 到 9 的值。要存储更大的数字,您可以使用多个数字。写成“1234”的数字的值是这样计算的:

1234 = 4 + 3*10 + 2*10*10 + 1*10*10*10

使用字节,您可以在每个数字中存储从 0 到 255 的值。就像在十进制系统中一样,您可以使用多个字节来存储更大的值:

4, 3, 2, 1 = 4 + 3*256 + 2*256*256 + 1*256*256*256

123, 29 = 123 + 29*256 = 7547

("Little endian"表示最小的字节先存入内存;就像你从右到左读取十进制数一样。)