Ich möchte einige Eingabe-ASCII-Zeichen in Bytes konvertieren. Wie von 'a' zu 01100001.
Ich habe Antworten wie this gelesen. Aber manchmal gibt es 0b10000110 wie 9-stellige Werte aus. Ich bin mir nicht sicher, ob das ein Fehler ist oder wie es funktionieren soll. Ich habe so etwas wie dies gemacht:Python ASCII-Zeichen in Bytes konvertieren
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)
es ziemlich gut mit normalen Zeichen gearbeitet. Aber wenn ich seltsame Zeichen eingegeben wie: ‚B
Es gibt sehr seltsam:
001110
00100111
0010000000
01000010
ich sehr bin nicht mit Python erfahren, so dass ich weiß nicht, ob es einen Weg gibt, dass Sie eine Funktion schreiben oder andere Methoden, um dies zu tun.
Ich verwende Python 3.6
Vielen Dank
Sie wollen nicht * Bytes *, Sie wollen eine * binäre Darstellung *. Eine Zeichenfolge bestehend aus nur 0 und 1 Zeichen. So wie "42" keine Integerzahl ist, ist es eine String-Repräsentation der Zahl. –
binäre Darstellung ist was ich meine. Danke – Mike
'format (ord (Zeichen), '08b')' würde eine 8-stellige Binärdarstellung erzeugen. –