在Python中合并两个字节

时间:2019-03-18 10:34:02

标签: 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
-> 1100101101100101 -> 52069

我觉得可能有一个简单的数学公式,但我似乎无法弄清楚...

3 个答案:

答案 0 :(得分:3)

将第二个字节左移8位,然后将其与第一个字节按位或:

(second_byte << 8) | first_byte

要获得额外的安全性,请按位与AND将两个字节都钳位到[0, 255]

((second_byte & 0xFF) << 8) | (first_byte & 0xFF)

答案 1 :(得分:0)

二进制移位运算符:

(second_byte << 8) + first_byte

与:

second_byte * 256 + first_byte

答案 2 :(得分:0)

如果字节数为bytes,则i。 e。一串字节,或者如果您想将字节放入一个字节,那么您应该看看struct模块:

 struct.unpack('h', b'\x00\x01')

将根据格式(256,)返回b'\x00\x01',它是字符串'h'中所有未包装内容的元组。

相关问题