Sistema di codifica che assegna lo stesso numero di bit per ciascun carattere
-
29-09-2020 - |
Domanda
Sto cercando di ottenere una stringa binaria che è stata convertita dal testo di un file di testo, sono in grado di ottenerlo, ma il problema è, ho bisogno di ogni personaggio da rappresentare dello stesso numero di bit, ma non èCosa ottengo ( Si prega di consultare il codice Python sotto e l'output corrispondente ).
Ad esempio, il carattere i
è rappresentato da 1101001
, che è lungo 7 bit, ma il carattere !
è rappresentato da 100001
, che è lungo 6 bit.
C'è qualche sistema di codifica / decodifica in cui ogni carattere richiede la stessa quantità di bit?
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))
.
Uscita:
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
. Soluzione
Il solito modo per risolvere questo problema è aggiungendo zero dirigenti.Quindi i
sarà ancora rappresentato da 1101001
, mentre !
sarà rappresentato da 0100001
.
Questo è simile a come il tuo orologio digitale potrebbe utilizzare 06:40 per 6:40 o 12:05 per 12: 5.