Question

J'essaie d'obtenir une chaîne binaire qui a été convertie à partir du texte d'un fichier texte. Je peux l'obtenir mais le problème est que j'ai besoin que chaque caractère soit représenté par le même nombre de bits, mais ce n'est pas ce que j'obtiens. (veuillez consulter le code python ci-dessous et la sortie correspondante).Par exemple, le personnage i est représenté par 1101001, qui fait 7 bits, mais le caractère ! est représenté par 100001, qui fait 6 bits de long.

Existe-t-il un système d'encodage/décodage où chaque caractère prend le même nombre de bits ?

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))

Sortir:

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
Était-ce utile?

La solution

La manière habituelle de résoudre ce problème consiste à ajouter des zéros non significatifs.Donc i serait toujours représenté par 1101001, alors que ! sera représenté par 0100001.

Ceci est similaire à la façon dont votre horloge numérique peut utiliser 06h40 pour 6h40 ou 12h05 pour 12h5.

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top