python 中带符号的十六进制短值的带符号十进制

Lee*_*dMx 1 python binary hex signed

我想知道是否有任何简单快捷的方法来获取 python 中带符号的十六进制的十进制值。

我要检查十六进制代码的值,只需在终端中打开 python 并输入十六进制,它会返回十进制,如下所示:

>>>0x0024
36
>>>0xcafe
51966
Run Code Online (Sandbox Code Playgroud)

所以我想知道,有什么办法可以为签名的短十六进制做到这一点吗?例如0xfffc应返回-4

atl*_*ine 5

import ctypes

def hex2dec(v):
    return ctypes.c_int16(v).value

print hex2dec(0xfffc)
print hex2dec(0x0024)
print hex2dec(0xcafe)
Run Code Online (Sandbox Code Playgroud)