邏輯門--計算之始!

[toc]python

邏輯門:

--------- " 抽象 " 之旅:

二進制:

不用管底層細節,把精力用來構建更復雜的系統:

  計算機最先是機電設備 , 通常用十進制計數 

  好比用齒輪數來表明十進制 --》 再到晶體管計算機
    
  二進制: 用 開/關 兩種狀態也能夠表明信息
	      意思是"用兩種狀態表示

  二進制也能夠寫成 1 和 0 而不是 true 和 false(不一樣的表達方式)

    表示 true  : 電路閉合,電流流過,表明 "真"
    表示 false : 電路斷開,無電流流過,表明"假"

晶體管的確能夠不僅是 開/關,還可讓不一樣大小的電流經過

早期電子計算機是三進制的,有 3 種狀態,甚至五進制,5 種狀態

--》 問題:狀態越多,越難區分信號???
	  如: 手機快沒電了或者附近有電噪音,用微波爐,信號可能會混在一塊兒 ....
	每秒百萬次變化的晶體管會讓這個問題變得更糟!

布爾代數:

思路:
--> 把兩種信號儘量分開,只用"開"和"關"兩種狀態,能夠儘量減小這類問題

計算機用二進制的另外一個緣由是: 
	有一整個數學分支存在,專門處理"真"和"假",已經解決了全部法則和運算
    										-----》"布爾代數"
        
布爾代數: 在布爾代數中,變量的值是 true 和 false,\N 能進行邏輯操做,
		 有三個基本操做:NOT, AND 和 OR

		NOT 操做把布爾值反轉,
        \N把 true 進行 NOT 就會變成 false,反之亦然	
		根據 NOT 操做的輸入和輸出,作出這個表,而且用晶體管能夠輕鬆實現這個邏輯	

晶體管只是電控制的開關, 有 3 根線:2 根電極和 1 根控制線:
		控制線通電時,電流就能夠從一個電極流到另外一個電極(如:打開水龍頭,就有水流出來,)

		能夠把控制線,當作輸入 ( input ), \N 底部的電極,當作輸出(output)
	 即: 1 個晶體管,有一個輸入和一個輸出;
    	 若是咱們打開輸入(input on) \N 輸出也會打開(output on) \N 由於電流能夠流過
		若是關閉輸入(input off) \N 輸出也會關閉(output off)\N 由於電流沒法經過
		
        或者用布爾術語來講\N 輸入爲 真,輸出爲 真	
		                輸入爲 假 \N 輸出爲 假     --》"真值表"

---》問題: 電路沒什麼意思,由於它沒作什麼事?,輸入和輸出是同樣的....

電路 "NOT | AND | OR 三 門" :

思路 : 對其上稍加修改,實現 NOT
	   與其把下面那根線當作 輸出,咱們能夠把 輸出 放到上面,
    
電路 "NOT 門":
    若是打開 輸入,電流能夠流過而後 "接地",輸出就沒有電流,因此輸出是 off

    --》	若是用水來舉例,就像家裏的水都從一個大管子流走了,打開淋浴頭一點水也沒有	

    若是輸入是 on,輸出是 off,當輸入是 off,電流無法接地,就流過了輸出,因此輸出是 on
    當輸入是 off,電流無法接地,就流過了輸出,因此輸出是 on ---》 和 NOT 操做表同樣

    電路 "NOT 門", \N 之因此叫 "門",是由於它能控制電流的路徑

"AND 門":
	"AND"操做有 2 個輸入,1 個輸出:
	 若是 2 個輸入都是 true,輸出纔是 true
        
   	 即:只打開 A,不打開 B \N 電流沒法流到 output,因此輸出是 false,只有 A 和 B 都打開    	 	了,output 纔有電流

	
"OR 門":
	只要 2 個輸入裏,其中 1 個是 true,輸出就是 true,
	\N若是 2 個 輸入都是 true,輸出也是 true
    只有 2 個輸入都是 false,OR 的結果纔是 false
	
   	實現 "OR 門" 除了晶體管還要額外的線 (不是串聯起來。而是並聯!!!)
    若是 A 和 B 都是 off,電流沒法流過,輸出是 off
	若是打開 A,電流能夠流過。輸出是 on

XOR 異或門:

NOT 門的畫法是三角形前面一個圓點 : 

AND 門用 D 表示 ,OR 門用太空船表示 (形象表示)

晶體管和電線依然在那裏,咱們只是用符號來表明而已:
    		用上述方法表示它們,構建更大的組件

除了前面說的三個\N 另外一個有用的布爾操做叫 "異或"  : 簡稱 XOR

XOR 就像普通 OR,但有一個區別:
	若是 2 個輸入都是 true,XOR 輸出 false
	想要 XOR 輸出 true \N 一個輸入必須是 true,另外一個必須是 false

XOR 門 : 
	有 2 個輸入,A 和 B ,還有 1 個輸出.
   	先放一個 OR 門. 由於 OR 和 XOR 的邏輯表很像,
    只有 1 個問題 - 當 A 和 B 都是 true 時 \N OR 的輸出和想要的 XOR 輸出不同
	----》獲得 false

\N 工程師給了它一個符號,一個 OR 門 + 一個笑臉  : XOR 門圖像表示

--》能夠把 XOR 放入"工具箱" , 不用擔憂 XOR 具體用了幾個門 ,怎麼用晶體管拼的,
						   或電子是怎麼流過半導體的

工程師設計處理器時,不多在晶體管的層面上思考,--用更大的組件,好比邏輯門,或者由邏輯門組成的更大組件,

專業程序員 也不用考慮邏輯是怎樣在物理層面實現的 從電信號開始,到如今第一次表示數據

-----》真和假 - 開始有點"計算"的感受了!!!!!

計算之始:

邏輯門 :  能夠判斷複雜的語句
         好比: [若是是 John Green] AND [下午 5 點後] \N OR [週末] AND [在比薩店附近]
        	   那麼 "John 想要比薩" = 真,

		And with that, I'm starving, I'll see you next week.
		都說餓了,下週見
相關文章
相關標籤/搜索