導讀:
用這句話描述計算機在好不過:
道生一溜畅,一生二,二生三惑畴,三生萬物行剂。
簡介:
離第一次看這本書已經有10個月左右的時間了, 特意買了紙質版從新讀了一遍姊途,關于編碼的意義又變得更加明確了涉瘾。 書中由淺入深的介紹了計算機的發(fā)明創(chuàng)造過程,印象最深的就是繼電器與振蕩器捷兰, 也正是 振蕩器與 繼電器 構成了計算機的基石。通過線路間的串聯(lián)與并聯(lián)構建能夠模擬構建布爾代數 從而實現了電路的數字化负敏, 而其中最重要的人物便是香農贡茅,當然還有另外兩個人物 邱奇 與 圖靈 書中并未做過多介紹。
脈絡:
在我看來書中已經將脈絡劃分的很好了其做,然后我也并不認為我能夠在將脈絡進行更好的劃分顶考,所以嚴格的來說不應稱其為脈絡也許用——“讀書之后的印象的鏈接”來形容更好一些。
我對這些印象做了一個簡單的梳理:
布爾代數->電路->布爾代數與電路的結合->編碼
以下內容可以略過
關于上面的內容(布爾代數->電路->布爾代數與電路的結合->編碼)我并不能進行一個詳細的闡述妖泄,所以我們從實用的目的驹沿,帶著問題出發(fā),只用我們需要的:
小明去超市買糖蹈胡,說:"阿姨我要蘋果味的糖或帶印有喜洋洋的草莓味的糖"
讓我們用符號對上面的話進行代指(替換)
首先讓我們用下面的符號代指物品:
p :蘋果味
t :糖
x :喜洋洋
c :草莓味
接著用下面的符號代指關系:
* :必須同時滿足
+ :至少滿足一個?
() :括號內的內容是一個整體
然后對對話進行精簡:
蘋果味的糖或帶印有喜洋洋的草莓味的糖
最后用剛才的符號對精簡后的對話進行描述:
(p*t)+(x*c*t)
場景1.超市阿姨拿過來一個印喜洋洋的菠蘿味的糖:
我們發(fā)現它有三個條件與式子中+右面的部分的條件的個數相同
x*c*t
然后做一個簡單的比較
t與糖相同
x 與 喜洋洋相同
c與菠蘿味不同
因為是*所以它們之間的關系必須同時滿足渊季,而c并沒有滿足朋蔫,所以不滿足條件,小明沒有要
場景2.超市阿姨拿過來一個印喜洋洋的草莓味的糖:
我們發(fā)現它有三個條件與式子中+右面的部分的條件的個數相同却汉。
x*c*t
然后做一個簡單的比較
t與糖相同
x 與 喜洋洋相同
c與菠蘿味相同
因為是*所以它們之間的關系必須同時滿足驯妄,所以滿足條件,小明要了合砂。
一.布爾代數
然后上面的例子和計算機又有什么關系呢青扔?
讓我們來看看用布爾代數的一些介紹(部分):
最簡單的布爾代數只有兩個元素0和1,并通過如下規(guī)則定義:
它應用于邏輯中翩伪,解釋0為“假”微猖,1為“真”,∧為“與”缘屹,∨為“或”凛剥,?為“非”。涉及變量和布爾運算的表達式代表了陳述形式囊颅,兩個這樣的表達式可以使用上面的公理證實為等價的当悔,當且僅當對應的陳述形式是邏輯等價的。
有了上面的介紹踢代,然后可以用布爾代數對上面的例子 “(p*t)+(x*c*t)” 進行重寫:
用∧代替* 盲憎,用∨代替+ ,可以得到:
(p∧t)∨(x∧c∧t)
將場景1進行代入:
p 蘋果味不存在 為假 =0
t與糖相同 為真 =1
x 與 喜洋洋相同 為真 =1
c與菠蘿味不同 為假?=0
=(0∧1)∨(1∧0∧1)
=0∨0
=0
結果為假所以小明沒有要胳挎。
將場景2進行代入:
p 蘋果味不存在 為假 =0
t與糖相同 為真 =1
x 與 喜洋洋相同 為真 =1
c與菠蘿味相同 為真 =1
=(0∧1)∨(1∧1∧1)
=0∨1
=1
結果為真所以小明要了饼疙。
二.電路
有了布爾代數還是不夠,我們要怎樣在電路中表示這種關系呢慕爬?
首先我們先了解一下電路的鏈接方式:
電路的鏈接有兩種方式——串聯(lián)和并聯(lián)窑眯。在串聯(lián)電路中只要有一個斷開,整個電路意味著都斷了医窿。在并聯(lián)電路中只要有一個閉合磅甩,電路就是通的。
(如果有配圖效果會更好姥卢。卷要。。自己畫個丑圖)
圖中每個電路中有兩開關根據開關的閉合和斷開可以有四種不同的狀態(tài) 其值如下表:
然后對照圖1與圖3是不是有什么發(fā)現呢独榴?
圖1中的或運算可以用圖2中的并聯(lián)的方式來表示僧叉,圖1中的與運算可以用圖2中的串聯(lián)的方式來表示。
三.布爾代數+電路
這是布爾代數的一小步棺榔,也是電路的一小步瓶堕,但是數字化電路的一大步
現在最關鍵的一步就是將布爾代數(p∧t)∨(x∧c∧t)用電路來表示(用斷開表示0,用閉合表示1)症歇,然后以燈泡亮了表示滿足條件否則不滿足郎笆。
將場景1進行代入(省略中間步驟):
(p∧t)∨(x∧c∧t) = (0∧1)∨(1∧0∧1)?
燈泡沒有亮谭梗,不滿足條件,小明沒有要题画。
將場景2進行代入(省略中間步驟):
(p∧t)∨(x∧c∧t) = (0∧1)∨(1∧1∧1)
燈泡沒有亮默辨,滿足條件,小明要了苍息。
四.編碼
什么是編碼缩幸?
用一組數據代指另一組數據,并能夠知道代指的數據是什么竞思,在剛開始我們用 p來表示蘋果表谊,t來表示糖,這就是我們自己定義的編碼盖喷,在用電路對布爾表達式重寫后我們用燈泡的亮與否表示是否滿足條件這也是我們自己定義的編碼爆办,但如果我用t來表示糖,你用t來表示桃子课梳,就會出現混亂距辆,因此需要避免這種情況,我們兩個可以用同一套編碼用t1來表示糖t2表示桃子暮刃,這樣就不會有問題了跨算,但是別人如何知道t1是糖,t2是桃子呢椭懊,于是我們大家坐下來重新制定一套屬于我們大家的編碼诸蚕。
維基百科上是這樣定義的:
編碼是信息從一種形式或格式轉換為另一種形式的過程。解碼氧猬,是編碼的逆過程
總結
其實最關鍵的繼電器我并沒有講到背犯, 而通過繼電器實現的反向器與緩沖器是構建整個計算機的關鍵之所在,然后書中的內容真的非常好盅抚,可以更加深入的了解計算機的構造與原理漠魏,十分適合當做入門書來看,這讀完之后還有一些地方理解的不夠透徹 比如 RAM的實現 不過相比于第一次看這本書的理解程度還是有些進步的妄均,在過年的這段時間內也會從新將一些概念重新梳理一下蛉幸,再次進行拜讀。
最后以 00生01丛晦, 01生10, 10生11提陶, 11生00 作為結尾