キャラクタごとに同じ数のビットを割り当てる符号化システム
-
29-09-2020 - |
質問
テキストファイルのテキストから変換されたバイナリ文字列を取得しようとしていますが、問題が発生する可能性がありますが、同じ数のビットで表される各文字が必要ですが、そうではありません。私が得るもの(下記の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
によって表されます。
これは、デジタル時計が6:40、または12:05で12:05の場合、デジタル時計が06:40を使用することができる方法と似ています。
所属していません cs.stackexchange