我目前正在研究蓝牙LE项目,bluepy模块要求我以字节为单位发送数据... 我想发送b'\ xFF',所以写:
bytes('\xff', 'utf-8')
返回:
b'\xc3\xbf'
进一步研究发现,所有127以上的uint-8数字实际上都发生了。
在寻找解决方案时,我发现了很多建议使用struct.unpack的问答,对不起,没有运气...
>>> type(struct.unpack('B', b'\xff')[0])
<class 'int'>
struct.unpack返回多个int类。 现在我发现:
b'\xFF'
实际上产生的字节全为一个。。。但是,我仍然希望对我解释bytes()和struct.unpack()的这种行为。 (Raspberry Pi 3上的Python 3.5.3)
非常感谢
KK
答案 0 :(得分:1)
对不起,我自己找到了解决问题的方法...
n = 255
bytes([n])
可以解决问题。对于方括号的逻辑有些疑惑,但是我们从事解决方案业务,让我们将理论留给真正的专家。 :-)