​python学习手册大全点我下载​

把16进制字符串转成带符号10进制

代码:

def hex_to_dec(hex_str):
# 把16进制字符串转成带符号10进制
if hex_str[0] in '0123456789':
dec_data = int(hex_str, 16)
else:
# 负数算法
width = 32 # 16进制数所占位数
d = 'FFFF' + hex_str
dec_data = int(d, 16)
if dec_data > 2 ** (width - 1) - 1:
dec_data = 2 ** width - dec_data
dec_data = 0 - dec_data
print(dec_data)

if __name__ == '__main__':
hex_to_dec('00e3')
hex_to_dec('e31e')

输出:

227
-7394

后记


python把16进制字符串转成带符号10进制_公众号