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
.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top