繁体   English   中英

Python中的二进制数据转换

[英]Binary data conversion in Python

我正在使用Python从控制器中提取三个8位寄存器。 这三个寄存器组合在一起构成一个24位整数-所以第一个寄存器/字节是字的0-7位,第二个寄存器/字节是8-15位,第三个寄存器/字节是16-23位。 在数学上,我认为需要做的是将三个寄存器/字节连接为单个24位二进制字,然后将二进制转换为十进制。 但是-我需要严格保持字节格式,因此,如果删除了其中一个字节字中的前导零,这是一个问题。 有什么办法吗?

这样的事情应该适用于无符号数量:

>>> 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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM