首页 > 解决方案 > 如何从python中的十六进制字符串中获取最后两个字节

问题描述

我有输出 = ( b'\x00\x01\x00\x00\x00\x07\x03\x04\x04\x00\x00\x07\xd0')。我想得到最后两个字节(07d0)。之后,我必须将它们转换为十进制。

标签: pythonpython-3.xpython-2.7

解决方案


int.from_bytes可以将任意数量的字节转换为整数,但您必须知道要转换 little-endian 还是 big-endian:

>>> output = b'\x00\x01\x00\x00\x00\x07\x03\x04\x04\x00\x00\x07\xd0'
>>> output[-2:]  # start 2 bytes from the end and grab until end
b'\x07\xd0'
>>> int.from_bytes(output[-2:],'little')
53255
>>> int.from_bytes(output[-2:],'big')
2000
>>> hex(int.from_bytes(output[-2:],'little'))
'0xd007'
>>> hex(int.from_bytes(output[-2:],'big'))
'0x7d0'

推荐阅读