我正在閱讀一篇關於二進制數字的文章,最後有一些實踐問題,但沒有給出解決問題的辦法。最後一個是「需要多少位來表示字母表?」。可以告訴我這個問題的答案,並簡要解釋爲什麼? 謝謝。如何使用英文字母的二進制符號
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