計算機 電腦為什麼擁有計算能力?

時間 2021-05-05 18:31:06

1樓:朊機

很多答主從硬體實現的角度解答的非常棒,

但我覺得只能算回答了一半,因為聚焦於概念而忽略了結構。

計算機計算能力的根源在於數位電路的概念抽象和編譯碼的對映關係。

高、低電壓代表0、1以及二進位制運算的電路實現原理其他的答主講解的很清晰了,這是概念抽象的層次,還缺少了乙個最重要的結構層級:

先把10進製編碼成2進製,再把2進製計算的結果解碼成10進製和10進製直接運算是相等的,正是因為發現並利用了這種對應關係才使得計算機擁有了計算的能力。

真理很簡單,難的是獲得真理的過程。概念千千萬,構建可以建立函式對映關係的概念很難,結構千千萬,發現有利用價值的結構很難。

2樓:林清

有這個困惑的人,顯然缺乏最基礎的科學知識。

有些回答答得正確全面,卻無意間用了不少專業術語,可能反而徒增疑惑。

以下嘗試以最簡單最容易理解的方式解答:如何使一堆金屬材料變得有意義,好像會自主計算

並非完全正確也不一定是現代計算機中所應用的機制

按下開關,燈亮,可以視為最簡單的 1 = 1

有一排開關和一排燈泡。按下第3個開關,第3盞燈亮。這就是 3 = 3

那麼如何計算 3 + 5 = 8?

一種可行的方案是,一排開關來代表第乙個加數,第二排開關代表第二個加數。一排燈泡代表結果。通過電路將這些開關和燈泡以一定方式連線,使得:

按下第一排第3個開關和第二排第5個開關的時候,第8盞燈亮。當按下第一排第a個開關和第二排第b個開關的時候,第a+b盞燈亮。這就是乙個最簡單的加法計算器。

那麼是否有辦法只用一排開關呢?按下第3個開關後抬起,再按第5個開關,然後第8盞燈亮?

後來人們又想,是否能將結果更直觀的表達?所以有了在電子鐘,電梯,計算器等地方用到的數字顯示屏。當連續按下第3和第5兩個開關之後,通過電路,不再是第8盞燈亮,而是特定的幾盞燈的組合亮起(8是所有燈全亮),剛好形成了8這個數字。

......

3樓:Season

計算機原型~圖靈計算機。它把計算這個過程簡單化成為了幾個步鄹~~輸入~貯存~運算~輸出。後來馮諾依曼在此之上提出了計算機的構想~控制器+運算器+儲存器+輸入輸出裝置。

4樓:SwapX

你知道電磁繼電器麼

通電和斷電對應著銜鐵的不同狀態

這非常完美的模擬了二進位制中的零和一兩種狀態只需要將許多的電池蓄電器進行組合

就可以構成最基礎的邏輯門

而通過邏輯門可以完成二進位制的運算

5樓:

邏輯門和二進位制是分析計算機可計算性的基礎,它告訴我們什麼樣的問題是計算機可解的,計算代價是可接受的。通過理解系統的計算能力,我們才得以不斷對系統進行改進和擴充,確定我們需要的東西是什麼。

Def. (等價) 自動機A和B等價指對於相同的輸入串c來說,A和B要麼都能回答,要麼都不能回答「是」或「否」。(A和B的答案可能不一樣)

定義任意k進製系統(k>=2, k\in \mathbb)都不影響機器的表達能力,因為真正限制圖靈機可計算性的根本是哥德爾不完備性定理。然而,它不方便人的理解。採用邏輯和真值是二進位制的理解基礎,這是直覺上的,也是人類科學發展順序導致的。

當我們發現這套系統已經完美刻畫了17進製圖靈機,我們自然不再需要證明更「複雜」的系統的計算能力了,因為它們是等價的。在實現上,0/5V電壓(當然現在系統內部很多元件已經不是這個了)相較於其它系統也有自己的優勢。(值得一提的是3進製也有自己的優勢,我只是試圖指出二進位制的優勢而已)

<\s>

通過溝通發現@楊個毛 的答案旨在說明實現並不影響運算本質,故上述部分刪去。實際上我在這部分持相似看法——物理實現並不改變其計算模型的本質。用閘電路是實現二進位制的方法,而用其他方法實現任意k進製計算系統,只要計算性不超過圖靈機,那麼計算機運算能力是由圖靈機這個計算模型決定的。

下面是我的看法。

首先宣告,請不要糾結於計算機的指令集,預設以下計算機均包含表達能力最強的指令集。

6樓:

本來不想強答的,但是看題主開始強行理解了,我決定答一發。一堆礦石破銅爛鐵,為什麼組裝在一起就能擁有驚人的計算能力,他的動力根源在什麼地方?

很遺憾現代計算機的關鍵不是銅鐵,而是以矽為主要成分的電晶體。。。

但是計算能力這件事情本身跟電路沒關係的(題主還理解到電的頭上了)

而且計算能力不是一種「動力」,雖然計算機需要動力去驅動但是它本身不是動力

任何系統只要能證明跟(普適)圖靈機等價,那麼它就可以被當作乙個計算機

也就是說無論是電腦還是生物DNA還是製造量子計算機需要的材料和粒子,只要構建出使上面這條成立的系統,那麼它們都有你所說的「計算能力」

發現「計算能力」的本質是由邱奇和圖靈分別完成並且圖靈證明了兩者模型等價的

以及那些造電子計算機的答主們我覺得你們跑偏了……

7樓:

非本專業強答。

計算機的結構很複雜,題主既然是電腦小白,那麼我非常簡略地講一講計算機是如何進行運算的,提供一種計算原理的想法。現代計算機學科已演化得非常龐大,更複雜的內容,便不是一兩句話能在這裡說清楚的了。

一、二進位制及高低電壓

首先,計算機運用二進位制進行計算。在二進位制中,每位數字只有0和1兩種可能,對應著「高電壓」和「低電壓」兩種狀態。高電壓和低電壓這兩種狀態在電路中是非常易於獲取的,因此,通過改變電路中某處的高低電壓,我們就能表示數字0和數字1了。

二、邏輯關係及其電晶體實現

接下來,引入三種常見的邏輯關係,「與」、「或」、「非」。如果兩端電壓同時為高,那麼經過「與」運算後,電路輸出高電壓,反之輸出低電壓。如果兩端電壓有任意一端為高,經過「或」運算後,電路輸出高電壓,反之輸出低電壓。

將乙個高電壓進行「非」運算,將輸出低電壓,反之亦然。「與」、「或」、「非」是三種最基本的邏輯運算方式,也是計算機這個龐大體系的基石。

後來,智慧型的人類發現,「與」、「或」、「非」的邏輯運算可以利用電晶體進行實現。下圖是「與門」的電晶體結構。

圖的下端顯示為1,意味著電路的下端接在了高電壓上;圖的上端顯示為0,意味著電路的上端接在了低電壓上。

圖的下半部分,x和y的右邊有乙個橫過來的「T」結構,你可以把它理解為乙個開關。比如說,當x處輸入了乙個1(高電壓)的時候,開關接通,x為0(低電壓)的時候,開關斷開。這張圖的上半部分,x和y的旁邊橫過來的T上畫了乙個圓圈,這其實是「非」運算符號。

例如,當上半圖中的x為0時,經過「非」運算後,輸出1,則開關閉合;當x為1時,經過「非」運算後,輸出0,則開關斷開。

如果把x和y當做輸入,z當做輸出,那麼上圖的電晶體就能進行「與」運算了。比如,當x和y同時為0的時候,圖的下半部分的兩個開關斷開,圖的上半部分兩個開關閉合(因為0經過了「非」運算變成了1,開關接通),z直接被接在了0上,因此z輸出0。下圖是這一狀態的展示,我們用x表示電路斷開,對勾表示電路接通。

當x為1,y為0的時候,狀態如下

只有當x和y同時為1的時候,我們才能讓z輸出1:

由此,我們可以用上面這個電路來進行「與」運算(Z=XY),真值表如下圖:

利用同樣的思路,我們設計出了「或」運算和「非」運算的電晶體結構:

上圖是「或」閘電路。

上圖是「非」閘電路。題主如果有興趣可以自行嘗試。

三、閘電路及其他邏輯運算

既然我們發現,電晶體可以進行邏輯運算,那麼我們將上述電晶體組合起來,就能進行複雜的邏輯運算了。但在這之前我們引入「門」這個概念,通俗地說,就是把電晶體電路進行封裝,用簡單地符號表示出來。

與門、或門、非門的邏輯電路表示如下:

以與閘電路為例,當X和Y分別為兩個輸入,Z就是乙個輸出,這個半圓形的結構封裝了上一部分所介紹的電晶體電路。

當然,除了與、或、非這三種邏輯運算之外,我們還有其他運算,常見的有「異或」運算子:當兩個輸入同為高電壓或低電壓時,輸出0;當兩個輸入分別為乙個高電壓和乙個低電壓時,輸出1,用如下閘電路表示:

四、「一位數」(二進位制)的加法實現(半加器):

我們來嘗試著用簡單的閘電路實現「一位數」加法。我們需要兩個輸入,和兩個輸出。我們不難理解兩個輸入的作用,加法需要把兩個數進行相加,由使用者進行輸入。

我們把相加的結果的「個位數」進行輸出(sum),當然,加法會有進製,因此我們把進製數輸出到另乙個輸出(carry)裡。由於是「一位數」二進位制加法,我們一共需要考慮四種情況:0+0=0(不進製),0+1=1(不進製),1+0=1(不進製),1+1=0(進製!

),真值表如下:

我們能不能用邏輯運算電路來實現呢?答案是肯定的。

上圖是這種運算的電路。例如,當A取0,B取1的時候,我們看到,sum確實為1,carry確實為0,如下圖:

題主可以自行嘗試用上圖驗算其他三種情況。這樣,利用這個電路,我們輸入A和B的值,就能自動輸出我們想要的加法結果了,上圖電路叫做「半加器」。

四、全加器及多位數運算

講到這裡,應該就能大致明白邏輯運算實現加法功能的思路了。正如上文所說,「一位數」一共只可能有四種情況,0+0=0(不進製),0+1=1(不進製),1+0=1(不進製),1+1=0(進製!),如果我們能找到某種特定的邏輯,使得通過這個邏輯,四種輸入可以得到四種正確的輸出,那麼這個元件就變成了乙個加法器。

半加器只能實現「一位數」加法,要實現多位數加法,我們需要全加器。全加器和半加器類似,只是,全加器接受三個輸入,A,B,C,其中多出來的C是用來接受上一位運算的進製的。我們把輸入A和B的和加上上一位的進製,就能得到這一位的值,並將進製傳遞給下一位。

這和我們小學時學習的行豎式運算的原理是一致的。我們把多個全加器連在一起,就能實現乙個多位數的加法器了:

上圖是乙個四位數加法器。例如,我們要運算3+2,即0011+0010,可以得到結果0101,即5.

我們將更多的全加器連線起來,就能進行更多位的運算了。需要注意的是,這是一種非常慢的運算方法,其優化問題,則是更加深入和複雜的問題了。

利用同樣的思路,我們還可以製成減法器等運算元件。

五、總結

總的來說,我們用一些非常簡單的邏輯電路組成乙個小系統,使得這個系統可以接受有限個輸入,並能夠利用電晶體的某些邏輯運算性質輸出我們想要的結果。我們將這些小系統進行一定的連線,組成乙個元件;再將許多元件進行特定的連線,就能組成乙個龐大的電路,來實現一些基本的運算功能了。

當然,計算機的功能絕不僅僅是運算,上文所介紹的,甚至連「計算器」都算不上。計算機是個龐大的系統,在下稍稍點一點,讓題主有一點模糊的認識;至於觸發器、暫存器、有限狀態機、時鐘、記憶體等基本元件及更複雜的內容不在此進行詳述,望題主自行閱讀有關書籍,樓上大神已經給出。本文有些地方用詞不很專業,畢竟不是專業出身,還望各路大神指正。

Reference:

Frank Vahid, Digital Design 2/e, John Wiley & Sons, 2010. ISBN 9780470531082

計算機女生用什麼電腦

Misa 價效比高是自己組裝台式電腦 抗用,用起來各方面都很舒服 用少錢可以辦同樣的事 筆記本的話 目前我推薦小歐和戰66或者聯想小新高配版 買電腦你主要關注幾個點就好 記憶體 8g 固態硬碟 120g 1T機械硬碟 螢幕主機板電源 差不多主要就這幾樣 我也是女生,我自己裝的台式電腦用了6年,一次都...

為什麼說計算機(電腦)無法產生真正意義上的隨機數?

DeepEffort 可再現的都不是真正的隨機數,如程式語言常用的用seed產生隨機數,這個是可再現的,用數學公式與移位運算等等操作,就能再現隨機數 如果考慮硬體的話,其實是可以的,常用的硬體隨機數發生器就是提取電路中的熱雜訊作為隨機數源的。另外,linux核心的 dev random基本上也可以當...

為什麼計算機計算會發熱?

Harry Zhu 算盤就是基本不發熱的計算機 計算機就是更快速的算盤 你以3.0GHz每秒的頻率撥動算盤珠,然後你看看它熱不熱就知道了。如果我能生產出假 CPU i9 國家會處罰我賣假貨嗎? 已解除安裝 先上答案 現有的經典計算機大多是不可逆計算機,計算機在不可逆計算中擦除1位元消耗的下限是,其中...