我想将一些输入的ASCII字符转换为字节。如从'a'到01100001.
我已阅读答案,如this。但有时它会发出0b10000110像9位数值。我不确定这是否是错误,或者这是否是它假设的工作方式。 我做了这样的事情:Python将ASCII字符转换为字节
text = list(input("text: "))
for character in text:
if character == ' ':
byt = '00000000'
else:
byt = bin(ord(character))
byt = byt.replace('b', '') #delete the 'b' in the output
if len(byt) != 8:
byt = '0' + byt
print(byt)
它工作得很好用普通字符。但是,当我进入奇怪的字符,如:“B
它输出很奇怪:
001110
00100111
0010000000
01000010
我不是非常有经验与Python,所以我不知道是否有,你可以写一个函数或方法其他方法来做到这一点。
我使用Python 3.6
非常感谢
你不想*字节*,你想要一个*二进制表示*。一个只包含0和1个字符的字符串。 “42”不是一个整数,它是数字的字符串表示。 –
二进制表示就是我的意思。谢谢 – Mike
'格式(ord(character),'08b')'会产生一个8个字符的二进制表示。 –