Frage

Ich versuche, eine Binärzeichenfolge abzurufen, die aus dem Text einer Textdatei konvertiert wurde. Das gelingt mir zwar, aber das Problem besteht darin, dass jedes Zeichen durch die gleiche Anzahl von Bits dargestellt werden muss, aber das ist nicht das, was ich bekomme (Bitte sehen Sie sich den folgenden Python-Code und die entsprechende Ausgabe an).Zum Beispiel Charakter i wird vertreten durch 1101001, das 7 Bit lang ist, aber Zeichen ! wird vertreten durch 100001, die 6 Bit lang ist.

Gibt es ein Kodierungs-/Dekodierungssystem, bei dem jedes Zeichen die gleiche Anzahl an Bits benötigt?

content = open('a.txt', 'r').read()
test_str = content
# using join() + ord() + format()  ... Converting String to binary 

Binary = ' '.join(format(ord(i), 'b') for i in test_str)

#Decimal=int(Binary, 2)



# printing original string  
print("The original string is : " + str(test_str)) 
# printing result  
print("The string after Binary conversion : \n" + str(Binary))

Ausgabe:

The original string is : Hi! Is there a solution?
The string after Binary conversion : 
1001000 1101001 100001 100000 1001001 1110011 100000 1110100 1101000 1100101 1110010 1100101 100000 1100001 100000 1110011 1101111 1101100 1110101 1110100 1101001 1101111 1101110 111111
War es hilfreich?

Lösung

Der übliche Weg, dieses Problem zu lösen, besteht darin, führende Nullen hinzuzufügen.Also i würde immer noch vertreten sein durch 1101001, während ! wird vertreten durch 0100001.

Dies ähnelt der Art und Weise, wie Ihre Digitaluhr 06:40 für 6:40 oder 12:05 für 12:5 verwenden könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top