編碼:隱匿在計算機軟硬件背后的語言
鏈接:https://pan.baidu.com/s/1AoGD78O4nrOkpTHkSc-tfg?pwd=397p?
提取碼:397p

內(nèi)容簡介
這是一本講述計算機工作原理的書。不過,你千萬不要因為“工作原理”之類的字眼就武斷地認為,它是晦澀而難懂的。作者用豐富的想象和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度的,這種深度甚至不遜于“電氣工程師”和“程序員”的理解。
目錄
目 錄
章 至親密友 1
編碼是什么?在本書中,這個詞的意思是指一種用來在機器和人之間傳遞信息的方式。換句話說,編碼就是交流。對任何能聽見我們的聲音并理解我們所說的語言的人來說,我們發(fā)出的聲音所形成的詞語就是一種編碼。用手電筒能代替聲音來與朋友交談嗎?當(dāng)然值得一試。
第2章 編碼與組合 7
莫爾斯碼也被稱做二進制碼,因為這種編碼的組成元素只有兩個――“點”和“劃”。不過,點、劃的組合卻可以表示你想要的任意數(shù)目的碼字。這其中的規(guī)律是什么?本章我們就來探討一番。
第3章 布萊葉盲文與二進制碼 13
布萊葉盲文是為了便于盲人閱讀而發(fā)明的一種編碼。在這一章中我們將解析布萊葉盲文,來看看它是如何工作的。我們并不是要真的學(xué)習(xí)布萊葉盲文,而且也無須刻意記住關(guān)于它的什么內(nèi)容。我們僅僅希望從中歸納出編碼的一些性質(zhì)。
第4章 手電筒的剖析 21
為了理解電在計算機中的工作原理,我們先得仔細鉆研一番電學(xué),不過不要擔(dān)心,只需要一部分基礎(chǔ)知識就夠了。在本章,我們將以手電筒為教學(xué)道具,引導(dǎo)你走入神秘的電學(xué)世界。
第5章 繞過拐角的通信 32
在章,我們曾經(jīng)講過用手電筒與朋友進行交談的方法,但是這樣的方式是有局限性的,你的交流對象必須住在街對過,而且你們臥室的窗口正好相對。但是,現(xiàn)實不會總是如此。當(dāng)手電筒的光無法到達朋友的臥室時,怎樣與他們進行無聲的交流呢?電路或許可以助你一臂之力。
第6章 電報機與繼電器 40
全球性即時通信對于我們來說已經(jīng)司空見慣,你要是生活在19世紀早期,可沒這么方便。你當(dāng)然可以進行即時通信或者遠距離通信,但是不能同時做到這兩點。即時通信受聲音傳播距離的限制,或者受視野的限制。使用信件倒是可以進行更遠距離的通信,但是寄信耗費的時間太多,并且需要借助于交通工具。為了解決這個問題,電報應(yīng)運,而生而伴隨著電報誕生的繼電器更是具有重要意義的偉大發(fā)明。
第7章 我們的十個數(shù)字 47
人們很容易理解,語言只不過是一種編碼。比如英文中的“cat”(貓)在其他語言中可以寫做gato、chat、Katze、KOIIIK或kátta。然而,數(shù)字似乎并不是那么容易隨文化的不同而改變。不論我們說什么語言,或使用什么樣的發(fā)音,在這個星球上的所有人都用以下方式來書寫數(shù)字:0,1,2,3,4,5,6,7,8,9。你了解這十個數(shù)字么?
第8章 十的替代品 55
對于人類而言,10是一個非常重要的數(shù)字。它是我們大多數(shù)人擁有的手指或腳趾的數(shù)目。我們?nèi)祟愐呀?jīng)適應(yīng)了以10為基數(shù)的數(shù)字系統(tǒng)。但是只能使用十進制來計數(shù)嗎?如果人類像卡通人物那樣每只手只有4根手指會怎樣?
第9章 二進制數(shù) 71
二進制是最簡單的數(shù)字系統(tǒng),其中只包含兩個數(shù)字:0和1。二進制中的1位(bit)稱為1比特,我們可以用它來表達簡單的信息:是或不是;亮或滅;打開或關(guān)閉,等等。而事實上只要信息能轉(zhuǎn)換成兩種或多種可能性的選擇,就都可以用比特來表示。這種例子在日常 生活中隨處可見,比如照相機膠卷的膠片速度,各種商品包裝上的條形碼。
0章 邏輯與開關(guān) 90
對于古希臘人而言,邏輯是在追求真理的過程中所使用的一種分析方法,是一種哲學(xué)形式。而英國的數(shù)學(xué)家喬治布爾卻認為可以找到一種數(shù)學(xué)形式來描述邏輯,因此他發(fā)明了布爾代數(shù)。更重要的是,布爾代數(shù)運算可以用開關(guān)、導(dǎo)線和燈泡組成的電路來實現(xiàn),布爾代數(shù)中的AND和OR,與線路中開關(guān)的串聯(lián)和并聯(lián),有著奇妙的對應(yīng)關(guān)系。
1章 門 108
繼電器像開關(guān)一樣,可以串聯(lián)或并聯(lián)在電路中執(zhí)行簡單的邏輯任務(wù)。這種繼電器的組合叫做邏輯門(logic gate),也簡稱門。這里提到的邏輯門執(zhí)行“簡單”邏輯任務(wù)是指邏輯門只完成最基本的功能。本章就介紹那些用以完成最基本邏輯任務(wù)的門。
2章 二進制加法器 135
加法是算術(shù)計算中最基礎(chǔ)的運算,如果想搭建一臺計算機的話,首先就要搭建出計算兩個數(shù)加和的器件。本章我們將利用前面的章節(jié)中用過的開關(guān)、燈泡、導(dǎo)線、電池、邏輯門等這些簡單的元件,搭建一個二進制加法器。
3章 如何實現(xiàn)減法 147
當(dāng)你確信繼電器連接在一起真的可以實現(xiàn)二進制數(shù)加法的時候,你可能會問:“如何實現(xiàn)減法呢?”問得好!這表明你是相當(dāng)有覺察力的,加法和減法在某些方面互相補充,但是在機制上二者卻存在本質(zhì)區(qū)別。不過,沒關(guān)系,我們可以想一些辦法,把減法運算變成加法。
4章 反饋與觸發(fā)器 160
想象一下,如果你沒有了記憶力,該如何去數(shù)數(shù)?我們不記得剛剛數(shù)過的數(shù),當(dāng)然也就無法確定下一個數(shù)是什么!同理,一個能計數(shù)的電路必定需要觸發(fā)器。本章要介紹的就是各種觸發(fā)器。
5章 字節(jié)與十六進制 186
在前面的章節(jié)中,加法器、鎖存器以及數(shù)據(jù)選擇器的輸入和輸出形式都是8位的數(shù)據(jù)流,也即數(shù)據(jù)路徑的位寬為8,為什么要定義為8位呢?為什么不是6位、7位、9位或10位?本章就要解釋其中的緣由。
6章 存儲器組織 197
每天清晨,我們將自己從沉睡中喚醒,這時大腦的空白會很快被記憶填滿。我們立刻會意識到自己身在何方,最近做了些什么事情,有什么計劃打算。有的事情我們很快就能想起來,但有時并非如此。我們可以借助許多工具來記錄信息,比如筆和紙、磁帶,當(dāng)然現(xiàn)在還可以使用存儲器。
7章 自動操作 215
人類的本性中帶有一些懶惰的特質(zhì)。我們總是抵觸繁重的工作,對枯燥的、重復(fù)性的工作深惡痛絕。所以,當(dāng)你必須用前面搭建的加法器計算100個數(shù),甚至更多個數(shù)的加法時,有一種念頭就會不可遏制地從腦子里冒出來:怎樣讓加法器自動地完成數(shù)據(jù)輸入和計算呢?辦法肯定是有的,那就是編寫程序。
8章 從算盤到芯片 252
算盤、滑尺、納皮爾骨架、差分機、解析機、繼電器、電子管、晶體管、芯片、計算機;甘特、帕斯卡、萊布尼茲、杰奎德、巴貝芝、圖靈、馮諾依曼、香農(nóng);IBM、貝爾實驗室……你覺得應(yīng)接不暇了嗎?把這些你或者熟悉或者生疏的名詞和名字串起來,就是人類的計算工具發(fā)展史。讓時光倒流,去看看那些精巧的工具,感受天才們的巧思吧!
9章 兩種典型的微處理器 276
將中央處理器的所有構(gòu)成組件封裝到一塊硅芯片上,就得到了微處理器。片微處理器芯片誕生于1971年,即Intel 4004系列,其中集成了2300個晶體管,你或許覺得可笑――如今家用計算機的微處理器上所安置的晶體管數(shù)量已經(jīng)以億為計量單位了。但是,從本質(zhì)上來說,微處理器實際所做的工作并沒有變。在本章,我們就來看看兩種有著輝煌歷史的典型微處理器:Intel 8080和Motorola 6800。
第20章 ASCII碼和字符轉(zhuǎn)換 307
計算機中的存儲器唯一可以存儲的形式是比特,因此如果想在計算機上處理信息,就必須把它們轉(zhuǎn)換為比特的形式來存儲。我們已經(jīng)掌握了如何用比特來表示數(shù)字和機器碼。如何用它來存儲文本呢?畢竟,人類所積累的大部分信息,都以各種文本形式保存的。下面就輪到ASCII碼出場了!
第21章 總線 325
一臺計算機包括很多部件:中央處理器、存儲器、輸入/輸出設(shè)備等。通常這些部件按照功能被分別安裝在兩個或更多的電路板上。這些電路板之間通過總線(bus)通信。如果對總線做一個簡單的概括,可以認為總線就是數(shù)字信號的集合,而這些信號被提供給計算機上的每塊電路板。
第22章 操作系統(tǒng) 346
你或許夢想過自己組裝一臺近乎完整的計算機,像老木偶匠蓋比特雕刻木偶匹諾曹一樣,全部親自動手用小零件完成。不過在你的機器能完成你想要的操作之前,還差一個重要的東西――操作系統(tǒng)!
第23章 定點數(shù)和浮點數(shù) 365
整數(shù)、分數(shù)以及百分數(shù)等各種類型的數(shù)字與我們形影不離,它幾乎出現(xiàn)在我們生活的所有角落。例如你加班2.75小時,而公司按正常工作時間的1.5倍支付你工資,你用這些錢買了半盒雞蛋并交了8.25%的銷售稅。在計算機的內(nèi)存里,所有的數(shù)都表示為二進制形式。通過前面的學(xué)習(xí),我們知道2用二進制可以表示為102,可是2.75用二進制怎樣表示呢?這就是本章的主題。
第24章 不錯語言與低級語言 381
第22章介紹了如何編寫一段簡單的程序,讓我們可以利用鍵盤將十六進制機器碼輸入計算機,以及通過視頻顯示設(shè)備來檢查這些代碼。但是使用機器碼編寫程序就如同用牙簽吃東西,伸出手臂費半天勁刺向食物,但每次都只獲取到小小的一塊,用這種低級語言編寫程序既費力又費時,有悖于我們發(fā)明計算機的初衷。不過,人們想出了一種效率更高的編程方法――使用不錯語言。
第25章 圖形化革命 398
回顧歷史,從臺繼電器計算器出現(xiàn)到現(xiàn)在為止,六七十年過去了,計算機的處理速度飛速增長。不過要充分利用計算機日益增長的運算和處理能力,就必須不斷改進計算機系統(tǒng)中的用戶接口(User Interface),因為它是人機交互的軸心。圖形化革命來了!