将十六进制字节串转换为有符号的十进制整数的Python代码

将十六进制字节串转换为有符号的十进制整数的Python代码

def hex_to_signed_decimal(hex_str):
    decimal = int(hex_str, 16)
    if decimal > 0x7fffffff:
        decimal -= 0x100000000
    return decimal  

这个函数接受一个十六进制字节串,然后将其转换为有符号的十进制整数并返回。它通过检查转换后的值是否超过了231来确定其是否应当被解释为负数,如果是的话,就从232减去该值来获得其补码表示的大小。以下是一个代码示例:

>>> hex_str = 'fffffffe'
>>> hex_to_signed_decimal(hex_str)
-2

字节合并

data = b'\xff\xf9"0'    # b'\xff\xf9"0'
bytes.hex(data)         #'fff92230'

#不考虑补码问题
int(bytes.hex(b'\xff\xf9"0'), 16)  #4294517296     

#考虑补码问题
def hex_to_signed_decimal(hex_str):
    decimal = int(hex_str, 16)
    if decimal > 0x7fffffff:
        decimal -= 0x100000000
    return decimal

hex_to_signed_decimal(bytes.hex(b'\xff\xf9"0'))      #-450000

将十六进制字符串转换为一个整数
首先使用 int() 函数将十六进制字符串转换为一个整数。接着,它使用了字符串格式化操作符 % 将该整数编码为带有至少 8 位的 16 进制字符串。

hex_string = '00003bce'
decimal_number = int(hex_string, 16)
formatted_string = '%08x' % decimal_number
print(formatted_string)
00003bce
hex_str = '0x1'
hex_num = int(hex_str, 16)
print(hex(hex_num))
0x1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值