在Python中组合两个字节

Jak*_*kas 3 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
Run Code Online (Sandbox Code Playgroud)

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

meo*_*dog 5

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

(second_byte << 8) | first_byte
Run Code Online (Sandbox Code Playgroud)

[0, 255]为了额外的安全性,使用按位 AND将两个字节钳位:

((second_byte & 0xFF) << 8) | (first_byte & 0xFF)
Run Code Online (Sandbox Code Playgroud)