如何将十六进制数转换为存储在DWORD中的十进制数,而不是QWORD



我有十六进制数:

FFFFFCE3

如果我想把它转换成十进制数字。我做到了:

printf "%d" "0xFFFFFCE3"

输出:

4294966499

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

-797

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

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

说明:

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

    这会将16进制字符串转换为无符号整数。

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

    这将一个无符号32位整数转换为有符号32位整数并打印。

最新更新