前面我們講到,在計算機內部,所有的數據都是以二進制進行表示的。二進制數據應該是最簡單的數字系統(tǒng)了,二進制中只有兩個數字符號——0和1。要是我們想尋求更簡單的數字系統(tǒng),就只剩下0一個數字符號了,只有一個數字符號0的數字系統(tǒng)是什么都做不成的。
“bit”這個詞被創(chuàng)造出來表示“binary digit”(二進制數字),它的確是新造的和計算機相關的最可愛的詞之一。當然,bit有其通常的意義:“一小部分,程度很低或數量很少”。這個意義用來表示比特是非常精確的,因為1比特——一個二進制位,確確實實是一個非常小的量。
那么,為什么如此簡單的二進制系統(tǒng)能夠表示出客觀世界中那么多種豐富多彩的信息呢?這就需要對信息進行各種方式的編碼。
讓我們先從一個例子講起。1775年4月18日,美國革命前夕,麻省的民兵正計劃抵抗英軍的進攻,派出的偵察員需要將英軍的進攻路線傳回。作為信號,偵察員會在教堂的塔上點一個或兩個燈籠。一個燈籠意味著英軍從陸地進攻,兩個燈籠意味著從海上進攻。但如果一部分英軍從陸地進攻,而另一部分英軍從海上進攻的話,是否要使用第三只燈籠呢?
聰明的偵察員很快就找到了好的辦法。每一個燈籠都代表一個比特,點亮的燈籠表示比特值為1,未亮的燈籠表示比特值為0,因此一個燈籠就能表示出兩種不同的狀態(tài),兩個燈籠就可以表示出如下四種狀態(tài):
00=英軍不進攻
01=英軍從海上進攻
10=英軍從陸地進攻
11=英軍一部分從海上進攻,另一部分從陸地進攻
這里最本質的概念是信息可能代表兩種或多種可能性的一種。例如,當你和別人談話時,說的每個字都是字典中所有字中的一個。如果給字典中所有的字從1開始編號,我們就可能精確地使用數字進行交談,而不使用單詞。(當然,對話的兩個人都需要一本已經給每個字編過號的字典以及足夠的耐心)換句話說,任何可以轉換成兩種或多種可能的信息都可以用比特來表示。
使用比特來表示信息的一個額外好處是我們清楚地知道我們解釋了所有的可能性。只要談到比特,通常是指特定數目的比特位。擁有的比特位數越多,可以傳遞的不同可能性就越多。只要比特的位數足夠多,就可以代表單詞、圖片、聲音、數字等多種信息形式。最基本的原則是:比特是數字,當用比特表示信息時只要將可能情況的數目數清楚就可以了,這樣就決定了需要多少個比特位,從而使得各種可能的情況都能分配到一個編號。
在計算機科學中,信息表示(編碼)的原則就是用到的數據盡量地少,如果信息能有效地進行表示,就能把它們存儲在一個較小的空間內,并實現(xiàn)快速傳輸。