Система кодирования, которая назначает одинаковое количество бит для каждого символа

cs.stackexchange https://cs.stackexchange.com/questions/121800

Вопрос

Я пытаюсь получить двоичную строку, преобразованную из текста текстового файла, я могу это получить, но проблема в том, что мне нужно, чтобы каждый символ был представлен одинаковым количеством бит, но я получаю не это. (пожалуйста, смотрите приведенный ниже код Python и соответствующий вывод).Например, персонаж i представлен 1101001, длина которого составляет 7 бит, но символ ! представлен 100001, длина которого составляет 6 бит.

Существует ли какая-либо система кодирования/декодирования, в которой каждый символ занимает одинаковое количество бит?

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

Выход:

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
Это было полезно?

Решение

Обычный способ решить эту проблему — добавить ведущие нули.Так i по-прежнему будет представлен 1101001, пока ! будет представлен 0100001.

Это похоже на то, как цифровые часы могут использовать 06:40 для 6:40 или 12:05 для 12:5.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top