昨天探討了關(guān)于計算機是怎樣一步步被人類不斷推進演變的過程,今天,我們將從抽象層面帶大家感受一下計算機復(fù)雜的一面。
從昨天講的,我們可以發(fā)現(xiàn)不論是通過裝置上的一個單位,還是通過晶體管控制開關(guān),計算機給我們的狀態(tài)只有“開”和“關(guān)”,雖然只有兩個狀態(tài),但是我們?nèi)匀豢梢杂眠@兩種狀態(tài)表達很多重要的信息,這就是所謂的“二進制”。
你是不是很疑惑:既然二進制只有兩個狀態(tài),那它肯定不能完成很復(fù)雜的工作咯?
答案是:是的,但是它卻可以準確的表示你需要的值:‘true’和‘false’。
在計算機中,狀態(tài)為“開”時,電流流過,用true表示;狀態(tài)為“關(guān)”時,電流停止,用false表示。通常情況下,也會用0和1來表示二進制的狀態(tài)。
上篇文章我們講晶體管可以用來控制電流的開啟和關(guān)閉,其實不然,晶體管還可以用來控制不同的電流水平。
早期某些電子計算機是三進制或五進制,表示他們的狀態(tài)有3種或5種,但問題是:像這種狀態(tài)層級越多,狀態(tài)之間的區(qū)分也就會越模糊。
晶體管每秒有數(shù)百萬次的變化,那中間存在的問題也會變得更加糟糕。
因此,將兩個信號放在盡可能遠的地方,即只使用 "開" 和 "'關(guān)"的狀態(tài),這樣就可以在很多干擾問題種區(qū)分最明顯的信號問題。
其實在計算機種使用二進制還有一個原因,那就是二進制在數(shù)學中有成熟的分支,它是專門用來處理‘true’和‘false’的問題,而且數(shù)學家們也已經(jīng)研究出了操作二進制的所有必要的規(guī)則和方法,這個分支被稱為“布爾代數(shù)”。
“布爾代數(shù)”來源于一位19世紀自學數(shù)學的英國數(shù)學家 'George Boole' ,他致力于研究亞里士多德的邏輯理論,亞里士多德邏輯法是以哲學為基礎(chǔ),Boole的方法則是使用邏輯方程式的方法去判斷真假,這一方法在1847年他的第一本書《邏輯的數(shù)學分析》中提出。
通常我們學習到的都是常規(guī)代數(shù),變量為數(shù)字,并對這些數(shù)字進行加減乘除等運算,但在布爾代數(shù)中,變量為‘true’和‘false’,并對這些變量進行邏輯處理。
布爾代數(shù)中的三個基本操作:“非”、“與”、“或”,這些操作都有他們自己獨特的作用。
“非(NOT)”作用于單個布爾值,無論其是true或false,都會將其反轉(zhuǎn),即true轉(zhuǎn)換為false,false轉(zhuǎn)換為true。
在布爾值中,當輸入為true時,輸出為true;當輸入false時,輸出false,它并沒有進行任何操作。
如果我們對其稍作修改,例如創(chuàng)建一個“非”電路,如果輸入true,則輸出為false;如果輸入false時,輸出將會是true,我們將剛剛創(chuàng)建的“非”電路稱為“非”門。
“與(AND)”作用于最少兩個輸入,但是只有一個輸出。只有當所有輸入都為true時,輸出true,但如果輸入有一個false,那輸出就是false。
最后一個布爾運算為“或(OR)”:只要有一個輸入為true,那么輸出為true,如果輸入都為false,那輸出就是false。
上面我們對非、與、或門有了一定的了解,現(xiàn)在我們看看這三種門的表示符號吧!
標準工程師們使用三角形加小圓點表示非:
一個D形狀的圖標表示與:
一個像宇宙飛船一樣的圖標表示或:
這些圖標和思想可以在我們構(gòu)建更大組件的同時,去控制好整體的相對復(fù)雜度,但是那些晶體管和電路的復(fù)雜依然存在。
舉個例子:在其他有用的布爾運算中有個被稱之為“異或(XOR)”的方法。
異或和或很像,只是如果輸入都為false,那輸出就是false。只有一種情況下異或會輸出true,就是當一個輸入為true,另一個輸入為false時。
異或門在實際應(yīng)用中是很必要的,因此工程師們也給了它一個單獨的標志:一個帶著笑臉的或門:
最重要的是,我們不需要太過于操心其中各個邏輯門的構(gòu)成,以及這些門該如何用晶體管去搭建,又或者如何讓這些電子在半導(dǎo)體中流通。
因為當計算機工程師在設(shè)計處理器時,很少會考慮晶體管層面是如何工作的,他們通常使用的是更大的區(qū)塊,例如邏輯門,或者由邏輯門組成的更大的組件。
即便你是專業(yè)的程序員,也很少去思考如何直接在物理層面用這些極小的組件去實現(xiàn)你的程序邏輯。
當然,我們也將思考的重心從原始的電子流動,轉(zhuǎn)移到了用數(shù)據(jù)表示來替代:如true和false,這讓我們的思維方式又一次接近了計算機本身。
-
二進制
+關(guān)注
關(guān)注
2文章
807瀏覽量
42308 -
計算機
+關(guān)注
關(guān)注
19文章
7657瀏覽量
90704 -
晶體管
+關(guān)注
關(guān)注
77文章
10015瀏覽量
141522
原文標題:還記得“非”“與”“或”“異或”門的邏輯關(guān)系嗎?
文章出處:【微信號:eda365wx,微信公眾號:EDA365電子論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
工業(yè)計算機與商用計算機的區(qū)別有哪些

工業(yè)計算機如何設(shè)計用于沖擊和振動

一文帶你了解工業(yè)計算機尺寸

云端超級計算機使用教程
ADS58C20熱阻有頂面(9.3度/W)和底面(0.5度/W),請問一下折算為一面的熱阻怎么計算?
虛擬內(nèi)存對計算機性能的影響
量子計算機與普通計算機工作原理的區(qū)別

ROM對計算機性能的影響
工業(yè)中使用哪種類型的計算機?

評論