我想將一些輸入的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個字符的二進制表示。 –