0

我有一个我无法破解的简单问题。我在 Python2.7 中使用 SMBus 从提供 med MSB 和 LSB 的芯片中读取数据。

我需要删除 MSB 中的第 2 位,然后将其与 LSB 的最后 8 位结合。

喜欢:

MSB = bus.read_byte_data(address, register_1)
LSB = bus.read_byte_data(address, register_2)

最高有效位 = 11110000 ,最低有效位 = 11111111

MSB_cut = 110000 , LSB = 11111111

合并 = 11000011111111

然后将其转换为整数。

我已经尝试过按位运算,但我没有做对。我知道这很简单,所以有人可以向我展示正确的代码吗?

谢谢。

4

1 回答 1

0

好的

我已经创建了这个非常丑陋的解决方案:

MSB = bus.read_byte_data(adress, register_1)
LSB = bus.read_byte_data(adress, register_2)
mb = bin(MSB)
lb = bin(LSB)
tot = mb[4:] + lb[2:]
total = int(tot, 2)

我认为必须有一个更微妙的方法。:-)

于 2020-06-02T18:17:21.313 回答