【发布时间】:2017-12-25 17:38:40
【问题描述】:
我想将一些输入的 ASCII 字符转换为字节。例如从“a”到 01100001。
我已经阅读了this 之类的答案。但有时它会给出 0b10000110 之类的 9 位数值。我不确定这是一个错误还是它应该是这样工作的。
我做了这样的事情:
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"不是整数,它是数字的字符串表示形式。 -
二进制表示就是我的意思。谢谢
-
format(ord(character), '08b')会产生一个 8 字符的二进制表示。
标签: python python-3.x