當前位置: 華文問答 > 數位

為什麽電腦能讀懂 1 和 0 ?

2017-03-23數位

玉來了

既然是問最最原始的那個工作原理。。。

從小到大,我們被告知的都是,電腦只能讀懂1和0,但我好奇的是為什麽電腦它就能夠讀懂1和0呢,它是怎麽讀懂的?讀懂後,又是怎樣進行工作的呢?嗯...我想問的就是,最最基本原始的那個工作原理

+++理論的分割線+++

最最基本原始的那個工作原理甚至都和電無關,是數學原理,布爾代數(搜尋),任何可以改變狀態傳遞資訊的技術都可以拿來實作布爾邏輯,而實作了布爾邏輯,就離電腦不遠了。

像是三體裏面的人列電腦,就是用三體人實作電腦,這一段我直接跳了,沒什麽可看的,因為我懂嘛。。。

我還設想過水流+開關實作邏輯閘,是可行的。


「現在可以公開的情報」

  1. 電腦的理論基礎是布爾代數
  2. 電腦的實作基礎可以是任何擁有『改變狀態』和『傳遞資訊』的技術


+++基礎實作的分割線+++

繼續正題。。。

起初, 科學家 創造電腦, 科學家 說,要先有邏輯閘,然後就用真空二極體實作了邏輯閘

真空管的原理去搜吧

電子電腦的原理就是利用通電、斷電(或曰高電平低電平)這兩個狀態來表示布爾代數中的邏輯真和邏輯假從而實作布爾運算,由於這個原因,設邏輯真為1和邏輯假為0,這樣就可以用電腦表示二進制的數位了。

現在的電腦用的是晶體二極體,雖然底層原理不同,但是性質是一樣的,這就是編程中常說的封裝和抽象的好處,你不需要關心它的原理,用它實作你的功能就行了。

所以說起來,現代電子電腦的實作,是物理原理,計算理論,是數學原理。

二極體的性質是這樣的,只有一個方向可以通電,反向不通電

『想知道具體原理的可以搜尋PN接面』

還有三極管(還有一種性質相似的場效應管FET),性質是這樣的,b通電ec通,b斷電ec斷

『具體原理搜尋NPN接面』

【【【【配圖】】】】

二極體和三極管


然後可以組成邏輯電路,下面分別是與或非(AND、OR、NOT)三種邏輯閘的電路實作


【【【【配圖】】】】

從左到右分別是與或非三種門,x j表示輸入,m表示輸出


有了這三種邏輯閘電路,你就可以實作任意邏輯閘了,比如與非門、或非門、異或門、同或門(異或非門)。(搜尋邏輯閘)

(實際套用中,是以與非門(NAND(Not AND) gate)為基礎原件來構建電路,因為其他所有門電路都可以用與非門構建, 關於這一點,你可以思考一下


「現在可以公開的情報」

  1. 地球當代的電腦的實作基礎是電子技術
  2. 二極體和FET的技術原理是PN接面和NPN接面,是原子、電子層面的原理(很底層吧。。。)
  3. 用二極體和FET可以實作布爾代數中的邏輯操作,稱為『邏輯閘』


+++邏輯的分割線+++

二進制數位的加法如下:

1+1=10

1+0=1

0+0=0

0+1=1

用上文中的邏輯閘就可以實作這個加法。

不考慮進位的情況下(術語叫半加器),用一個異或門就可以實作兩個數位相加,很簡單,就不畫圖示意了,自行思考吧。。。

考慮進位的情況下(術語叫全加器),稍微有點復雜,輸入透過XOR(異或門)得到結果,同時過一個電路得到進位結果

進位規則如下:

1+1進位1

1+0進位0

0+0進位0

0+1進位0

可見進位規則可以用AND(與門)得到結果,所以電路圖如下:

【【【【配圖】】】】

把這樣的電路串起來,就可以實作多位加法,自己想想看吧。

不過這裏有一個問題,要連多個例圖中的加法器,需要給電路添加一個輸入口m,它是上一位的進位,有興趣可以思考一二。


實際套用中,電路並不是憑空想的,是透過布爾邏輯運算得到一個最簡邏輯運算式,然後按照這個運算式來組裝電路,『請搜尋數位電路』。

淘寶可以買到LED燈、二極體和三極管,雖然現在漲價了,但價格依舊感人,不到順豐快遞費就可以買一大把,有興趣的同學可以自行購買這些元器件組裝電路來玩玩。

輸出端接上led燈,就可以觀察到電路執行結果。

額外的,如果你把幾個燈泡並聯並且弄成一條線段的樣子當做一個整體燈管,然後透過輸入來點亮相應燈泡,就可以用來顯示數位了。。

像下面這種,一共7個燈管

1點亮右邊兩根、2點亮相應的,以此類推

這樣可以用布爾代數做出來5個輸入7個輸出相對應的邏輯,然後用上文的邏輯閘組成電路圖實作

(為啥輸入是5個?)


「現在可以公開的情報」

  1. 可以用邏輯閘實作加法,也可以實作減法
  2. 實作加法的原理在於透過輸入進行邏輯運算得到輸出,這一學科可以透過搜尋『數位電子技術』獲得詳情
  3. 透過燈泡等裝置,可以實作電路的輸出
  4. 電腦的 本質 原理就是接受『輸入』,透過『計算』,得到『輸出』
  5. 透過上文所有文字,已經部份解決了樓主電腦為什麽能讀懂1和0以及內部工作原理的問題,雖然還剩下時序邏輯,不過這已經夠了。樓主趕緊點贊吧


+++分割線+++

太長了。。。

後續還有反饋電路、觸發器、時序邏輯記憶體等等等等,最終目標是弄出一個CPU來(如果我有時間的話)可以寫一個模擬器讓感興趣的同學用邏輯閘拼湊CPU(如果我還有時間的話)

『待續(應該大概真的會續)』


**不過最後還是想提醒還在學校的cs同學們,這些知識對找工作毫無幫助,請不要在此屠龍之技上浪費時間。