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