Pergunta

Estou tentando obter uma string binária que foi convertida do texto de um arquivo de texto, consigo, mas o problema é que preciso que cada caractere seja representado pelo mesmo número de bits, mas não é isso que recebo (por favor veja o código python abaixo e a saída correspondente).Por exemplo, personagem i é representado por 1101001, que tem 7 bits de comprimento, mas o caractere ! é representado por 100001, que tem 6 bits de comprimento.

Existe algum sistema de codificação/decodificação em que cada caractere ocupe a mesma quantidade 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))

Saída:

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
Foi útil?

Solução

A maneira usual de resolver esse problema é adicionando zeros à esquerda.Então i ainda seria representado por 1101001, enquanto ! será representado por 0100001.

Isso é semelhante a como seu relógio digital pode usar 06h40 para 6h40 ou 12h05 para 12h5.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top