在Python中组合两个字节
我有一个问题,我得到两个字节,表示为0-255之间的int,两个字节应该表示一个值。现在我是这样做的,但这需要很长时间。有什么建议吗在Python中组合两个字节,python,Python,我有一个问题,我得到两个字节,表示为0-255之间的int,两个字节应该表示一个值。现在我是这样做的,但这需要很长时间。有什么建议吗 bin_string = '0b' + bin(int(second_byte))[2:].zfill(8) + bin(int(first_byte))[2:].zfill(8) result = float(literal_eval(bin_string)) example: 203 -> 11001011 101 -> 01100101 -&
bin_string = '0b' + bin(int(second_byte))[2:].zfill(8) + bin(int(first_byte))[2:].zfill(8)
result = float(literal_eval(bin_string))
example:
203 -> 11001011
101 -> 01100101
-> 1100101101100101 -> 52069
我觉得可能有一个简单的数学公式,但我似乎无法算出它…将第二个字节左移8位并按位移动,或者与第一个字节左移:
(second_byte << 8) | first_byte
二进制移位运算符:
(second_byte << 8) + first_byte
如果在
bytes
值中获取字节,则i。E一个字节字符串,或者如果您想将字节放入其中,那么您应该查看struct
模块:
struct.unpack('h', b'\x00\x01')
将返回(256,)
,这是字符串b'\x00\x01'
中所有未打包内容的元组,格式为'h'
可能的重复项
second_byte * 256 + first_byte
struct.unpack('h', b'\x00\x01')