如何使用字母表二进制符号

时间:2010-11-06 22:40:15

标签: binary bits

我正在读一篇关于二进制数的文章,最后有一些实践问题,但它没有给出问题的解决方案。最后一个是“表示字母表需要多少位?”。可以告诉我这个问题的答案并简要解释一下原因吗? 感谢。

4 个答案:

答案 0 :(得分:4)

你只需要5位,因为你数到26(如果我们只取大写或小写字母)。 5位将计数到31,因此您实际上拥有的空间超出了您的需求。您不能使用4,因为它只计为15.

如果你想要大写和小写,那么6位是你的答案 - 6位将很乐意计数到63,而你的双字母表有(2 * 24 = 48)个字符,再次留下足够的空间。

答案 1 :(得分:3)

这取决于您对字母表的定义。如果要表示26个字母的罗马字母(A-Z)中的一个字符,则需要log2(26)= 4.7位。显然,在实践中,你需要5位。

然而,考虑到无限的字符流,理论上你可以提出一个接近4.7位的编码方案(不再是单个字符和位向量之间的一对一映射)

如果您正在谈论代表实际的人类语言,那么由于冗余,您可以远远低于此数字(在1.5位/字符的区域内)。但这太复杂了,不能在这里发表一篇文章......(谷歌关键词是“熵”和“信息内容”)。

答案 2 :(得分:2)

字母表中有26个字母,因此2 ^ 5 = 32是包含所有字母的最小字长。

答案 3 :(得分:0)

表示需要多直接?如果你需要1:1没有翻译层,那么5位就可以了。但是如果翻译层是一个选项,那么你可以少花钱。例如,摩尔斯电码可以用3位进行。 :)