为每个字符分配相同位数的编码系统
-
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
.
这类似于数字时钟使用 06:40 表示 6:40,或使用 12:05 表示 12:5。
不隶属于 cs.stackexchange