我试图通过TCP套接字发送字节消息。我有一个静态字节,即十六进制单词0xaa
。在静态字节上,我需要连接MSB始终为0的动态字节,然后有来自6-4的位,它们是可变的(从000到100),而来自3-0的比特也是可变的(从0000到1000)。做这件事最好的方法是什么?我已经看到可以从bitarray
使用bitstring
和BitArray
类,但是我想知道解决这个问题的最佳解决方案是什么。另外,我需要知道如何将位数组转换回字节,以便通过TCP发送它。
我需要的例子:
leading_byte = 0xaa
bit7 = 0 (bit)
options = { 'a' : 000 (bits), 'b' : 001 ...}
versions = { 'i' : 0000 (bits), 'i' : 0001 ...}
bits6_4 = options['a']
bits3_0 = versions['i']
byte_message = leading_byte + bit7 + bit6_4 + bits3_0
socket.send(byte_message)
发布于 2015-01-07 20:16:55
使用位移位和普通chr
byte_message = chr(0xaa) + chr((bits6_4 << 4) | bits3_0)
https://stackoverflow.com/questions/27827836
复制相似问题