1

我有十六进制数:

FFFFFCE3

然后,如果我试图将其转换为十进制数。我做了:

printf "%d" "0xFFFFFCE3"

并输出:

4294966499

但如果我将它存储在 QWORD 中,这就是结果。我想知道如何将其存储在 DWORD 中,因此输出将是我期望的负数:

-797
4

1 回答 1

2

要将十六进制字符串解释为 32 位有符号整数,请运行:

$ python -c 'x=int("0xFFFFFCE3",16); print x if x<2**31 else x-2**32'
-797

解释:

  • x=int("0xFFFFFCE3",16)

    这会将 base-16 字符串转换为无符号整数。

  • print x if x<2**31 else x-2**32'

    这会将无符号的32 位整数转换为有符号的32 位整数并打印出来。

于 2014-10-08T05:45:22.420 回答