在 Python 3 中,我使用 PySerial 读取两个字节,我想获得这两个字节中 11 个最高有效位的十进制表示。
这是我从串行通信中获得的两个字节的打印作为示例:
b'\x1e@'
这两个字节具有以下二进制表示形式:
00011110 01000000
我想保留 11 个最高有效位,此处显示没有前导零:
11110010
并将结果转换为十进制值,或本例中的
242
。谁能帮我在 Python 3 中执行此转换?谢谢您的帮助。
将数据转换为整数并移位五位:
data = b'\x1e@'
print(int.from_bytes(data) >> 5)
输出:
242