Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有十六进制数:
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)
这会将 base-16 字符串转换为无符号整数。
print x if x<2**31 else x-2**32'
这会将无符号的32 位整数转换为有符号的32 位整数并打印出来。