計算機內部 1 + 1 = 2 的實現

迷惑
1 + 1 = 2 是小學生都知道的公理,這很好理解,也不需過於複雜化。但一個問題須要深刻探究:計算機是如何實現 1 + 1 = 2 的。ide

從二進制開始提及
計算機,更準確來講是 CPU, 它天生是不可能知道 1+1=2 這種計算邏輯的,必定是人爲賦予的。設計

人是怎麼告訴 CPU 這種事的呢?準確來講,這是CPU設計只出就定死的。3d

首先考慮CPU內部的實現,你們或許都有一個意識:「計算機只認識0和1」,準確來說,這裏的0和1並非單純整數意義上的數字0和數字1, 而是指兩種狀態. 思考一個燈泡,它只能存在兩種狀態,沒開/開着,這是兩種狀態。一樣,在CPU內部的電路中,也只有兩種狀態(固然還存在高阻態,但這並非重點),這兩種狀態分別爲A態(通,高壓態)、B態(斷,低壓態),分別用1/0兩個數字標表示,所以,更準確的表達是「計算機只認識0和1兩種狀態「。blog

兩種狀態能夠由二進制表示,二進制與經常使用的十進制相似,最大的不一樣點是逢二進一,例如十進制2的二進制爲10,數字7的二進制是111. 這種表示簡單且高效,在計算機內部,全部的數據都是二進制存儲的,不只數值,字符也是如此。固然,不一樣於數值之間的轉換,並不存在單純的字符與二進制之間的轉換關係,這須要人爲的定義,世界上通用的字符的二進制表示是ASCII碼,例如字母'A', 其二進制被強制定義爲01000001.圖片

有了二進制的概念,對於問題:「計算機是如何實現 1 + 1 = 2」,也就邁出了一大步。首選能夠明確,在計算機內部數字'1','2' 被分別表示爲 '01','10'.it

邏輯電路
如今要解決的問題的是:計算機如何處理運算。 因爲計算機內部由二進制表示,問題由回到二進制上,最早要解決的問題是二進制是如何進行四則運算的? 考慮一位二進制數字,有如下規則:0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0進1(即10)。咱們要實現一種知足以上規則的電路。 串並聯等基礎概念再也不贅述,這裏首先介紹幾種基本邏輯電路:class

或門:並聯電路實現; 記爲'OR', 其運算邏輯爲:0 OR 0 = 0, 0 OR 1 = 1, 1 OR 0 = 1, 1 OR 1 = 1.
計算機內部 1 + 1 = 2 的實現
與門:串聯電路實現; 記爲'AND', 其運算邏輯爲:0 AND 0 = 0, 0 AND 1 = 0, 1 AND 0 = 0, 1 AND 1 = 1.
計算機內部 1 + 1 = 2 的實現
非門:一般採用CMOS邏輯和TTL邏輯,也能夠經過NMOS邏輯、PMOS邏輯等來實現。記爲'NOT', 其運算邏輯爲:NOT 0 = 1, NOT 1 = 0.
計算機內部 1 + 1 = 2 的實現
與非門:一個與門與一個非門實現。
計算機內部 1 + 1 = 2 的實現
異或門:用一個與非門、一個與門和一個或門實現。記爲'XOR', 其運算邏輯爲:0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1, 1 XOR 1 = 0.圖片
計算機內部 1 + 1 = 2 的實現
計算機內部 1 + 1 = 2 的實現
有了以上邏輯電路的概念,1 + 1 = 2( 二進制下1 + 1 = 0進1)實現便十分簡單,利用上述介紹的二進制加法與邏輯電路的運算邏輯,咱們能夠分紅兩部分完成:和輸出;進位輸出。 和輸出能夠採起異或門, 1 XOR 1 = 0. 擴展:異或門又稱爲半加器,它只能實現和輸出但沒法輸出進位。 進位輸出能夠採起與門, 1 AND 1 = 1. 擴展:異或門加上一個與門組成全加器。基礎

計算機內部 1 + 1 = 2 的實現
a,b 爲輸入端, c爲進位輸出,s爲和輸出。擴展

相關文章
相關標籤/搜索