我正在阅读一篇关于二进制数字的文章,最后有一些实践问题,但没有给出解决问题的办法。最后一个是“需要多少位来表示字母表?”。可以告诉我这个问题的答案,并简要解释为什么? 谢谢。如何使用英文字母的二进制符号
2
A
回答
4
你只需要5位,因为你数到26(如果我们只有大写或小写字母)。 5位数将达到31,所以你实际上已经获得了比你需要的更多的空间。你不能使用4,因为只能计数到15.
如果你想要大写和小写,那么6位是你的答案 - 6位将愉快地计数到63,而你的双字母有(2 * 24 = 48 )字符,再次留下大量的空间。
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位完成。 :)
相关问题
- 1. PHP:符号二进制字符串
- 2. 如何检索二进制文件的二进制版本号
- 3. 如何从字符中删除口音? (只留下英文字母符号)
- 4. 比较字符串二进制(非字母数字字符)
- 5. 如何使用Python3将二进制文件写入字符串?
- 6. MySQL的“二进制”与“字符的字符集的二进制”
- 7. 使用二进制信号
- 8. 写的字符串二进制数据的二进制文件
- 9. 带符号的二进制乘法和带符号的二进制除法
- 10. 写入无符号字符向量到二进制文件C++
- 11. 英文旁边还带有非英文字母字符 - React-Native
- 12. 十进制到二进制使用符号,指数,大小
- 13. 使用二进制值编写字符?
- 14. 如何使用nspredicate对非英文字符串进行排序?
- 15. 使用ASCII字符和进行二进制搜索字符串?
- 16. 检查字符串是否仅包含英文字母,数字和符号
- 17. 这个二进制字符串是如何被使用的?
- 18. 如何只验证英文字母字符
- 19. 如何检查字符串是否只包含英文字母?
- 20. 有符号二进制数字char * of 2s恭维二进制表示的char * *?
- 21. 如何使用字符串打开二进制文件?使用C
- 22. Go - 如何将二进制字符串转换为二进制字节?
- 23. 如何在Linux上编译英特尔Mac二进制文件?
- 24. 在二进制符号数字(冗余二进制表示)中除以2
- 25. 如何在python中使用二进制值连接字符串?
- 26. 如何使用位置矢量创建二进制字符串?
- 27. 如何通过LUA字符串(二进制)到C++使用tolua ++
- 28. 如何使用Java中的第二个字母按字母顺序对字符串数组进行排序
- 29. 如何在编译ELF二进制文件时设置符号的段号?
- 30. 二进制文件字符串
旧的5位电报代码以5位表示50多个不同的字符。您可以使用相同的技术以4位对字母进行编码。 (是的,这是作弊...) – Porculus 2010-11-06 23:02:01
@Porculus - 如果二进制是浮点数,4位就会很酷! (4.7位) – Bojangles 2010-11-06 23:05:16
好的,谢谢大家。我也得到了5分,但我认为这很容易,但显然我是对的。 – agentbanks217 2010-11-06 23:24:57