Python如何从十六进制字符串或字节串中获取最后两个字节并转十进制
Python字节串/十六进制字符串提取最后两字节并转十进制实现
1. 字节串场景(你的示例场景)
字节串原生支持切片操作,取最后两个字节直接用负索引切片即可,转十进制直接调用内置的int.from_bytes方法即可:
# 你的示例变量 output = b'\x00\x01\x00\x00\x00\x07\x03\x04\x04\x00\x00\x07\xd0' # 提取最后两个字节 last_two_bytes = output[-2:] # 按大端序转十进制(你需要的07d0对应大端序,高位在前) dec_value = int.from_bytes(last_two_bytes, byteorder='big') # 验证结果 print(last_two_bytes.hex()) # 输出 07d0 print(dec_value) # 输出 2000
如果你的业务场景要求小端序解析,把byteorder参数改为'little'即可。
2. 十六进制字符串场景
如果输入是十六进制字符串(比如hex_str = "000100000007030404000007d0"),按如下方式处理:
hex_str = "000100000007030404000007d0" # 1个字节对应2个十六进制字符,取最后4位 last_4_chars = hex_str[-4:] # 转十进制 dec_value = int(last_4_chars, 16) print(dec_value) # 输出 2000
内容的提问来源于stack exchange,提问作者Rabiul Islam
相关产品推荐
相关产品推荐

