題外話:熟悉本公眾號的老朋友應該知道,本號的主要理念不是告訴你怎麼做,而是告訴你為什麼。大家也會發現大多數文章都是講原理的知識,畢竟「知其然,知其所以然」是最重要的。
言歸正傳,要回答這個問題,首先讓我們了解一下二進位概述以及其發展 。
進位是逢2進位的進位制,0、1是基本算符;計算機運算基礎採用二進位。
電腦的基礎是二進位,那麼,什麼是二進位呢,為什麼需要二進位呢?在早期設計的機械計算裝置中,使用的不是二進位,而是十進位或者其他進位,利用齒輪的不同位置表示不同的數值,這種計算裝置可能更加接近人類的思想方式。比如說一個計算設備有十個齒輪,它們級連接起來,每一個齒輪有十格,小齒輪轉一圈大齒輪走一格。這就是一個簡單的十位十進位的數據表示設備了,可以表示0到999999999的數字。配合其他的一些機械設備,這樣一個簡單的基於齒輪的裝置就可以實現簡單的十進位加減法了。
這種通過不同的位置上面不同的符號表示數值的方法就是進位表示方法。常用的進位主要是十進位(因為我們有十個手指,所以十進位是比較合理的選擇,用手指可以表示十個數字,0的概念直到很久以後才出現,所以是1-10而不是0-9)。電子計算機出現以後,使用電子管來表示十種狀態過於複雜,所以所有的電子計算機中只有兩種基本的狀態,開和關。也就是說,電子管的兩種狀態決定了以電子管為基礎的電子計算機採用二進位來表示數字和數據。常用的進位還有8進位和16進位,在電腦科學中,經常會用到16進位,而十進位的使用非常少,這是因為16進位和二進位有天然的聯繫:4個二進位位可以表示從0到15的數字,這剛好是1個16進位位可以表示的數據,也就是說,將二進位轉換成16進位只要每4位進行轉換就可以了。
二進位的「00101000」直接可以轉換成16進位的「38」。一個字是電腦中的基本存儲單元,根據計算機字長的不同,字具有不同的位數,現在的計算機字長一般是32位或64位的。以32位為例,也就是說,一個字的位數是32。字節是8位的數據單元,一個字節可以表示0-255的數據。對於32位字長的現代電腦,一個字等於4個字節,對於早期的16位的電腦,一個字等於2個字節。
計算機使用二進位有一下優點(可以補充):
1、電路中容易實現 :當計算機工作的時候,電路通電工作,於是每個輸出端就有了電壓。電壓的高低通過模數轉換即轉換成了二進位:高電平是由1表示,低電平由0表示。也就是說將模擬電路轉換成為數字電路。這裡的高電平與低電平可以人為確定,一般地,2.5伏以下即為低電平,3.2伏以上為高電平。二進位數碼只有兩個(「0」和「1」)。電路只要能識別低、高就可以表示「0」和「1」。
2、物理上最易實現存儲 :
(1)基本道理:二進位在物理上最易實現存儲,通過磁極的取向、表面的凹凸、光照的有無等來記錄。
(2)具體道理:對於只寫一次的光碟,將雷射束聚住成1--2um的小光束,依靠熱的作用融化碟片表面上的碲合金薄膜,在薄膜上形成小洞(凹坑),記錄下「1」,原來的位置表示記錄「0」。
3、便於進行加、減運算和計數編碼。易於進行轉換,二進位與十進位數易於互相轉換。
簡化運算規則:兩個二進位數和、積運算組合各有三種,運算規則簡單,有利於簡化計算機內部結構,提高運算速度。電子計算機能以極高速度進行信息處理和加工,包括數據處理和加工,而且有極大的信息存儲能力。數據在計算機中以器件的物理狀態表示,採用二進位數字系統,計算機處理所有的字符或符號也要用二進位編碼來表示。用二進位的優點是容易表示, 運算規則簡單,節省設備。人們知道,具有兩種穩定狀態的元件(如電晶體的導通和截止,繼電器的接通和斷開,電脈衝電平的高低等)容易找到,而要找到具有10種穩定狀態的元件來對應十進位的10個數就困難了
4、便於邏輯判斷(是或非)。適合邏輯運算:邏輯代數是邏輯運算的理論依據,二進位只有兩個數碼,正好與邏輯代數中的「真」和「假」相吻合。二進位的兩個數碼正好與邏輯命 題中的「真(Ture)」、「假(False)或稱為」是(Yes)、「否(No)相對應。
5、用二進位表示數據具有抗幹擾能力強,可靠性高等優點。因為每位數據只有高低兩個狀態,當受到一定程度的幹擾時,仍能可靠地分辨出它是高還是低。
綜合以上特點,計算機才使用二進位。