[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 與其把下面那根線當作 輸出,咱們能夠把 輸出 放到上面, 電路 "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
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. 都說餓了,下週見