1. 程式人生 > >計算機與二進位制

計算機與二進位制

   我之前一直在思考為什麼現在的計算機要採用二進位制。現在我把我思考的結果和查閱的資料寫下來。

    首先,我認為二進位制實際上只是一種計數制,說白了就是用0,1兩個符號來編碼一切數值。而二進位制與計算機的本質一點關係都沒有,我覺得計算機的本質是通用圖靈機,與什麼二進位制、布林代數都沒有關係(這兩者只是製造計算機的一種方式而已)。

    至於為什麼採用二進位制,我覺得最重要的原因就是能穩定保持兩種狀態的電子元件很好製造,這就降低了成本(蘇聯歷史上曾製造過三進位制計算機)。接著,因為我們只用有兩種狀態的電子元件來製造計算機,所以之前十進位制的電子計算機(ENIAC採用十進位制而不是二進位制!),我覺得其實也是用一定的位數來直接表示十進位制數字的,於是所有的計算電路也是基於十進位制計算的演算法來設計的,這肯定大大增加了電路的複雜性。於是,之後馮諾依曼就提出直接用二進位制來表示數值,這是非常自然的,因為電子元件本身就是雙穩態的,用一個元件表示一個數位非常自然,而且因為採用二進位制來表示數字,所以計算的演算法就變為二進位制數的演算法,於是電路的設計大大簡化。

    接下來再說說布林代數。因為布林代數所計算的值只有兩種狀態,真和假,也就是1和0啦。這就與電子元件的二元狀態相吻合,而且人們後來發現布林代數的計算都可以很簡單的用電路來實現。於是兩者一拍即合,用布林代數的理論來指導電路的設計,用布林代數對0和1的處理來不斷的組合出更加複雜的運算,如二進位制加法運算等等。所以說啊,我覺得如果我們能很好的製造出三穩態的電子元件,計算機就很有可能採用三進位制了(好像有資訊理論證明三進位制能編碼的資訊量是最多的),那樣就沒布林代數什麼事了。。。

  還有,我覺得二進位制其實只是計算機編碼的一部分而已。因為二進位制只是一種表示數值的方式而已,而且也僅僅說明計算機內部的數值是用二進位制來表示而已。但是計算機可是要處理一切資訊的啊,這些資訊可是遠遠不只是數值資訊。所以說啊,我覺得計算機內部的資訊的核心思想是用兩種狀態來編碼一切資訊,而二進位制編碼只是其中的一種方式。

   說了這麼多,我想總結一下,計算機的本質與二進位制沒有關係,或者說二進位制只是計算機的一種實現方式而已。計算機的實現啊,我覺得更多的涉及到的是物理化學的事,因為這本來就是一個物理實體嘛!對於計算科學的人來說,計算機只是他們的工具而已。對於這個工具,他們也是要稍微瞭解一下即可,至於用什麼方法實現的(比如計算機內部是用二進位制還是三進位制)其實對他們來說都沒啥關係,,更為重要的還是研究演算法,研究計算過程的性質,然後通過程式設計(對一個計算過程進行編碼)來讓計算機這個工具來執行這個計算過程,從而創造價值!  說白了,計算機就是一個提供強大算力的工具,就是一個幹苦力的O(∩_∩)O哈哈哈~。