我使用Python从控制器中提取三个8位寄存器。组合的三个寄存器构成一个24位整数 - 因此第一个寄存器/字节是字的0-7位,第二个寄存器/字节是8-15位,第三个寄存器/字节是16-23位。数学上我认为需要做的是将三个寄存器/字节连接成一个24位二进制字,然后将二进制转换为十进制。但是 - 我需要严格保持字节格式,以便删除其中一个字节字中的前导零 - 这是一个问题。有没有办法做到这一点?
答案 0 :(得分:0)
这样的事情应该适用于无符号数量:
>>> b1, b2, b3 = 0x80, 0x40, 0x20
>>> n = (b3 << 16) | (b2 << 8) | b1
>>> n
2113664
>>> format(n, ',d')
'2,113,664'
>>> hex(n)
'0x204080'
>>> bin(n)
'0b1000000100000010000000'