python 十进制和十六进制相互转换
程序员文章站
2024-03-17 13:04:16
...
在处理报文数据时,出现了十六进制两字节带符号整型数据,由于python没有这个类型,所以需要自己转换,我参考了一些资料,写出了python对应的代码。
https://blog.csdn.net/happygrilclh/article/details/106194107
下面是转换的代码。
# 运算的数据是2字节带符号整型数据,当然可以按照需要自己修改
# 传入十六进制字符串,返回int类型
def str_to_signed_int_2bytes(data: str):
int_data = int(data, 16)
# 二进制数是1开头,即所代表的数是负数,转换出来的数字大于32768(0x8000)
if int_data >= 32768:
int_num = int_data - 65536
else:
int_num = int_data
return int_num
# 传入int类型字符串,返回2字节带符号十六进制数据字符串
def signed_int_to_str_2bytes(int_num: int):
if int_num < 0:
int_temp = 65536 + integer
else:
int_temp = int_num
str_hex = '{:04X}'.format(int_temp)
return str_hex
print(str_to_signed_int_2bytes('ffff'))
print(signed_int_to_str_2bytes(-1))
输出结果
-1
FFFF
成功转换了,效果还行。
上一篇: IP地址、子网掩码的关系
下一篇: mybatis基础应用中需要注意的地方