2010-11-06 56 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位完成。 :)

相關問題