Pregunta

Estoy intentando obtener una cadena binaria que se ha convertido a partir del texto de un archivo de texto. Puedo obtenerla, pero el problema es que necesito que cada carácter esté representado por el mismo número de bits, pero eso no es lo que obtengo. (consulte el siguiente código de Python y el resultado correspondiente).Por ejemplo, personaje i está representado por 1101001, que tiene 7 bits de longitud, pero carácter ! está representado por 100001, que tiene 6 bits de longitud.

¿Existe algún sistema de codificación/decodificación en el que cada carácter tenga la misma cantidad 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))

Producción:

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
¿Fue útil?

Solución

La forma habitual de resolver este problema es añadiendo ceros a la izquierda.Entonces i todavía estaría representado por 1101001, mientras ! estará representado por 0100001.

Esto es similar a cómo su reloj digital podría usar 06:40 para 6:40 o 12:05 para 12:5.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a cs.stackexchange
scroll top