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