当你看到像0x8048cc54 -> \x54\xcc\x48\x80
这样的东西时,小端是很简单的。如果你想将这些转换为8字节,你会怎么做呢?0x8048cc4或0x8048cc怎么样?如果这是错误的论坛,那就让我知道并且不好意思。
答案 0 :(得分:1)
这取决于您的值的容器(内存大小)。如果(如第一个示例中那样)该值被视为32位,您只需要查看它的“全范围”:
0x8048cc4 == 0x08048cc4
0x8048cc == 0x008048cc
从这里转换endianess的答案很简单......
答案 1 :(得分:1)
“Endianness”就是您编写数字的顺序。
世界上大多数人都用big endian写东西;最重要的数字首先出现在最后一个最不重要的位置:
123 = 100 + 20 + 3(= 1×10²+ 2×10¹+ 3×10⁰)
然而,从计算机的角度来看,从另一端看它通常很有用:
321 = 3 + 02 + 001(= 3×10⁰+ 2×10¹+ 1×10²)
计算机中数字的“数字”由值0..255组成 - 也就是说,每个数字都是一个字节。我们人类没有256个不同的符号来写入该字节值,因此我们将其从基数256转换为基数16。
要以小端编写,从最低有效字节开始并剥离,直到用完字节/数字为止:
0x0848cc4 - > \ XC4 \ x8c \ X84 \ X00
0x8048cc - > \ XCC \ X48 \ X80 \ X00
希望这有帮助。