如果我有变量,则数字= 255
如何将二进制值完全插入字符串中,而不是将其转换为ascii表示形式,如3个字符所示。
string =“我的号码是”+号码!“
所以在这种情况下,在内存中将是字符串,因为它通常是ascii但是变量是它只是一个字节并且是11111111.再次那不是ascii中的11111111(如不是8个字符)。
这样做的目的是我已经通过串口向我的微控制器发送数据,但到目前为止它全部都在ascii中,我发送的任何数字都转换为ascii,因此255将是3个字节,但我试图制作通过发送任何数字作为原始二进制值,一切都更有效率。 (目前我需要发送的数字不会超过255,因此可以在一个字节内完成)
据我所知,如果我沿着这条路走下去,我将需要决定一个转义字符,所以我不小心用原始二进制数据表示命令符号,但这不是问题。
编辑:只是提到我知道我必须将我的字符串编码为ascii,因为python默认是unicode。如果有人提到那个
答案 0 :(得分:1)
您可能正在寻找chr
函数,至少对于Python 2.7:
>>> print "Byte 65:" + chr(65)
Byte 65:A
('A'是“单字节”65的文字表示......)
注意:的 正如您所提到的,Python 3.0中的字符串以unicode表示,即以多字节格式表示。如果您尝试对值进行编码,则会出现错误> 128使用ascii编解码器。
因此,如果通过串行接口发送原始数据,您应该使用bytes
,如果您的串行库支持它。
答案 1 :(得分:0)