如何在Python 3中转换十六进制字节字符串中的n个最高有效位

问题描述 投票:0回答:1

在 Python 3 中,我使用 PySerial 读取两个字节,我想获得这两个字节中 11 个最高有效位的十进制表示。

这是我从串行通信中获得的两个字节的打印作为示例:

b'\x1e@'

这两个字节具有以下二进制表示形式:

00011110 01000000

我想保留 11 个最高有效位,此处显示没有前导零:

11110010

并将结果转换为十进制值,或本例中的

242
。谁能帮我在 Python 3 中执行此转换?谢谢您的帮助。

python-3.x binary hex byte decode
1个回答
0
投票

将数据转换为整数并移位五位:

data = b'\x1e@'
print(int.from_bytes(data) >> 5)

输出:

242
© www.soinside.com 2019 - 2024. All rights reserved.