??要提到計(jì)算機(jī)的工作原理,就不得不提到一種電子裝置:觸發(fā)器。觸發(fā)器主要由兩個電子管組成,當(dāng)電流通過觸發(fā)器時會通過其中一個電子管。觸發(fā)器一共有四個接觸點(diǎn),其中兩個用來接收外部脈沖,另外兩個用來輸出回答脈沖。外部脈沖輸入的瞬間,觸發(fā)器就會“翻轉(zhuǎn)”,使原本導(dǎo)通的電子管變成閉合狀態(tài),電流轉(zhuǎn)而進(jìn)入另一個電子管。當(dāng)一邊電子管閉合、另一邊電子管導(dǎo)通的瞬間,觸發(fā)器就會輸出回答脈沖。
??現(xiàn)在我們給觸發(fā)器連續(xù)不斷地輸入脈沖,并根據(jù)圖1中兩根電子管其中的一根——右側(cè)的電子管的狀態(tài)來確定觸發(fā)器的狀態(tài):當(dāng)右側(cè)電子管閉合時,設(shè)定觸發(fā)器是「0 狀態(tài)」;當(dāng)右側(cè)電子管導(dǎo)通時,設(shè)定觸發(fā)器是「1 狀態(tài)」。
??如果觸發(fā)器的初始狀態(tài)為「0 狀態(tài)」,即右側(cè)電子管為閉合狀態(tài)時(如圖 1所示),那么輸入第一個脈沖后,右側(cè)電子管導(dǎo)通,觸發(fā)器翻轉(zhuǎn)成「1 狀態(tài)」。此時,觸發(fā)器不會輸出回答脈沖,因?yàn)樽髠?cè)電子管并未導(dǎo)通。接下來,當(dāng)我們輸入第二個脈沖時,左側(cè)電子管導(dǎo)通,右側(cè)電子管閉合,觸發(fā)器翻轉(zhuǎn)為「0 狀態(tài)」,輸出回答脈沖。
??通過觀察可以發(fā)現(xiàn),經(jīng)過兩次輸入脈沖之后觸發(fā)器回到了原始狀態(tài)。接著繼續(xù)輸入第三個脈沖,觸發(fā)器變成了「1 狀態(tài)」,再輸入第四個脈沖,觸發(fā)器又變成「0 狀態(tài)」……也就是說,觸發(fā)器的狀態(tài)是以2個脈沖為周期進(jìn)行循環(huán)的。
圖1
??如果將多個觸發(fā)器相互連接會發(fā)生什么事呢?以三個觸發(fā)器:觸發(fā)器1、觸發(fā)器2、觸發(fā)器3相連為例(如圖 2 ),給觸發(fā)器1輸入脈沖信號,之后觸發(fā)器1的回答脈沖會作為觸發(fā)器2的輸入脈沖,觸發(fā)器2的回答脈沖之后又會作為觸發(fā)器3的輸入脈沖,最后觸發(fā)器3產(chǎn)生回答脈沖。
圖2
??假設(shè)一共有 5 個觸發(fā)器相互連接,最初的狀態(tài)都為「0 狀態(tài)」,我們可以把這個觸發(fā)器組的狀態(tài)標(biāo)記為「00000」。給最右邊的觸發(fā)器輸入第一個脈沖后,該觸發(fā)器的狀態(tài)變?yōu)椤? 狀態(tài)」,但由于沒有回答脈沖,左側(cè)的 4 個觸發(fā)器依舊是「0 狀態(tài)」,整體可以標(biāo)記為「00001」。接著,我們輸入第二個脈沖,最右邊的觸發(fā)器翻轉(zhuǎn)為「0 狀態(tài)」,同時最右邊的觸發(fā)器輸出的回答脈沖輸入相鄰的觸發(fā)器中,相鄰的觸發(fā)器翻轉(zhuǎn),成為「1 狀態(tài)」,其他觸發(fā)器由于沒有接收到回答脈沖,仍舊處于「0 狀態(tài)」,整體可標(biāo)記為「00010」。緊接著輸入第三個脈沖,最右邊的觸發(fā)器又會翻轉(zhuǎn)為「1 狀態(tài)」同時不輸出回答脈沖,其他觸發(fā)器狀態(tài)不變,狀態(tài)為「00011」。如此循環(huán),我們最終得到如下數(shù)據(jù):
輸入第 1 個脈沖后的狀態(tài)為:00001
輸入第 2 個脈沖后的狀態(tài)為:00010
輸入第 3 個脈沖后的狀態(tài)為:00011
輸入第 4 個脈沖后的狀態(tài)為:00100
輸入第 5 個脈沖后的狀態(tài)為:00101
輸入第 6 個脈沖后的狀態(tài)為:00110
……
??如果把上述狀態(tài)視為二進(jìn)制的數(shù)字,轉(zhuǎn)換為十進(jìn)制之后我們就能依次得到1,2,3,4,5,6,…。由此可見,相互連接的觸發(fā)器可以對外部脈沖信號進(jìn)行「計(jì)數(shù)」,而且是一種特殊的計(jì)數(shù)方式。
??二進(jìn)制通過「0」和「1」來表示所有數(shù)字。與十進(jìn)制有所不同的是,二進(jìn)制的后一位是前一位的 2 倍,而不是 10 倍。二進(jìn)制數(shù)轉(zhuǎn)化成十進(jìn)制數(shù)時,將每位數(shù)分別乘以2 的 n 次方( n 代表位數(shù))并求和即可。例如,將二進(jìn)制數(shù)「10011」轉(zhuǎn)化為十進(jìn)制,就是 1 × 2^0 + 1 × 2^1 + 0 × 2^2 + 0 × 2^3 + 1 × 2^4 = 19。
??觸發(fā)器每翻轉(zhuǎn)一次(也就是每輸入一個脈沖信號),只需要一億分之幾秒的時間?,F(xiàn)代計(jì)數(shù)觸發(fā)器可以在 1 秒之內(nèi)「計(jì)算」1000 多萬個脈沖,而人眼需要 0.1 左右秒才能識別變換的信號。可以說,跟人類相比,它快了將近 100 萬倍。
??下面,我們來看看觸發(fā)器如何進(jìn)行加法運(yùn)算。把三排觸發(fā)器按照圖 3 所示連接起來,其中第一排觸發(fā)器用來表示被加數(shù),第二排觸發(fā)器用來表示加數(shù),第三排觸發(fā)器則用來表示二者之和。當(dāng)上面兩排觸發(fā)器的狀態(tài)為「1」時,會分別向第三排觸發(fā)器輸出脈沖信號。
圖3
??圖3的例子中,前兩排觸發(fā)器記下的兩個二進(jìn)制數(shù)是 101 和 111。第三排的第一觸發(fā)器從前兩排的第一觸發(fā)器處別得到一個脈沖信號(一共得到兩個脈沖信號),根據(jù)前面的分析,第三排的第一觸發(fā)器依舊處于「0 狀態(tài)」,同時會給第三排的第二觸發(fā)器輸出一個回答脈沖。除了這個回答脈沖之外,第三排的第二觸發(fā)器還會從第二排的第二觸發(fā)器得到一個回答脈沖,一共得到兩個脈沖信號,處于「0 狀態(tài)」,并輸出一個回答脈沖給第三排的第三觸發(fā)器。除了這個回答脈沖之外,第三排的第三觸發(fā)器還從第一排和第二排各得到一個脈沖,共得到 3 個脈沖,狀態(tài)為「1」,同時輸出一個回答脈沖。第三排的第四觸發(fā)器只得到這一個回答脈沖,狀態(tài)為「1」。以上過程就是二進(jìn)制數(shù)的加法運(yùn)算,如果寫成豎式運(yùn)算,就如下圖所示:
圖4
??將圖4中的二進(jìn)制數(shù)換算為十進(jìn)制數(shù),就會得到 5 + 7 = 12。第三排觸發(fā)器輸出的回答脈沖相當(dāng)于豎式加法運(yùn)算的進(jìn)位。如果每排的觸發(fā)器有 20 個(或者大于 20 個),就可以計(jì)算百萬級甚至千萬級數(shù)的加法。如果把上述方案改造一下,不但可以進(jìn)行加減法運(yùn)算,還可以進(jìn)行乘法運(yùn)算和除法運(yùn)算。
-
脈沖
+關(guān)注
關(guān)注
20文章
889瀏覽量
95639 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7494瀏覽量
87961 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61158
發(fā)布評論請先 登錄
相關(guān)推薦
評論