2010-11-06 58 views
2

我正在阅读一篇关于二进制数字的文章,最后有一些实践问题,但没有给出解决问题的办法。最后一个是“需要多少位来表示字母表?”。可以告诉我这个问题的答案,并简要解释为什么? 谢谢。如何使用英文字母的二进制符号

回答

4

你只需要5位,因为你数到26(如果我们只有大写或小写字母)。 5位数将达到31,所以你实际上已经获得了比你需要的更多的空间。你不能使用4,因为只能计数到15.

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

+0

旧的5位电报代码以5位表示50多个不同的字符。您可以使用相同的技术以4位对字母进行编码。 (是的,这是作弊...) – Porculus 2010-11-06 23:02:01

+0

@Porculus - 如果二进制是浮点数,4位就会很酷! (4.7位) – Bojangles 2010-11-06 23:05:16

+0

好的,谢谢大家。我也得到了5分,但我认为这很容易,但显然我是对的。 – agentbanks217 2010-11-06 23:24:57

3

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

但是,给定一个无限多的字符流,理论上可以得到一个接近4.7位的编码方案(在个别字符和位向量之间不会再有一对一的映射关系)。

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

+0

更多描述比我的文章(下面) - 感谢信息:) – Bojangles 2010-11-06 22:49:27

2

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

0

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

相关问题