為什麼計算機一定要用二進位制?

時間 2021-05-11 03:43:20

1樓:liumeng

因為

夏農他說資訊是:資訊,是用來消除不確定性的東西。

(膜拜,還有誰。。。。能給出更好的定義)而且還給出了資訊的定量的描述,確定了資訊量的單位,為bit,也就是我們經常講的位,一位就是bit,那麼一bit的資訊量:

就在變異度為2的最簡單的情況下,就是能消除非此既彼的不確定性。

明白了吧

2樓:你委實可愛

作為乙個什麼都不懂的路人,我只想說

「讓小燈泡亮度不同」(還必須是有規律的)和「僅僅是小燈泡開關」兩者相比,哪種更簡便易行?

3樓:流星劃空

若是如題目般所說以亮度代表數字,那麼,以現今的技術,如何在晶元和儲存裝置上進行識別?如今普通處理器的晶元集合的電晶體也就是電路開關是以億計,電路完全展開以公里計,然而這晶元僅僅指甲蓋大小。更為關鍵的是,製作晶元的光刻機極其複雜尖端,是為人類工業技術之精華,以亮度識別數碼訊號豈不是要每個晶元都整合一台光刻機精度的機器裝置進去?

這整合進去的裝置恐怕比光刻機還要高階。

傳統晶元以電路開關作為邏輯單位,所以才選擇了二進位制,除非技術發展,能將同樣大小的物理形態複雜化來表達更多資訊,否則二進位制永遠是最佳選擇,或者,用其他的邏輯單位,例如現在還未研發成功的量子計算機。

反倒是網路擁有更大的設計空間,比如,單個晶元進行第一輪計算,多個晶元組成第一層網路,多個第一層網路又組成二級網路進行第二輪計算,以此類推,其中傳遞的訊息是進行了壓縮計算的——顯然,得有相對應的解決方案將任務切割,還有訊號傳輸中壓縮解壓的轉換方案,並且,需求的計算量得足夠大,因為電流的傳輸也需要時間,不能利用完整個系統的任務反而會慢。

4樓:謎之槍兵X

我們先退一步思考這乙個問題:當我們在說「計算機使用二進位制」的時候,我們到底在說什麼?或者,「(現有的主流)計算機」和「二進位制」之間到底是什麼關係?

首先還是要澄清乙個概念:「二進位制」這個詞嚴格來說只能用來描述記數法,而計算機中儲存的未必是要按照「數」解讀的東西;正確來說,應該問「『(現有的主流)計算機』和『二值表示(用兩個不同的數值的組合表示資訊)』之間到底是什麼關係」。不過「二進位制」和「二值表示」在英文都是「binary」,翻譯過來的時候就已經頗為混淆了,所以下文中我也會繼續採用「二進位制」這個不嚴格的說法。

誠然,計算機表示資料的時候是用一堆「有兩個狀態的東西」表示的,每個「東西」可以對應一位二進位制數。然而CPU在對暫存器中的資料進行操作的時候,從來都不是一次只對一位二進位制數進行操作的,而是一次操作32個或者64個數字——這就是所謂「32位CPU」「64位CPU」的含義。考慮到人類使用十進位制算數的時候總是一位一位地計算,從這個層面上完全可以說這32個到64個二進位制位才是對計算機來說的「一位」;而計算機的「一位」越「長」,一般來說可以同時處理的資訊也會越多,雖然64位CPU比起32位CPU達不到提速一倍的效果但終究是有提公升的。

(題外話,計算機的這種「一位」的這個「長度」一般叫做「字長」而不是「位長」——不過這名字也不錯,畢竟人類的計算可以說是一位一位地算,也可以說是乙個「數字」乙個「數字」地算。)

因此,對於題主的第乙個問題——

——我的回答是:當然有可能,而且其實已經在這麼做了,而且用的不是什麼「十進位制」「一百進製」這樣寒磣的東西,而是***進製,甚至***進製。只不過用的方式和題主在第二個問題裡想象的不一樣,不是用「同乙個量的更多不同等級」表示,而是用「同一種等級分布的更多個量」表示。

因此,我可以猜到題主和一部分答主會對此有意見:說是更多進製,其實到了最最底下不還是二進位制麼?為什麼不做成從最最底下就是更多進製的呢?

這樣的話我就要反問一句:二進位制真的是最最底下嗎?真正存在於「最最底下」的其實是電路中電壓的高低,是電容上電荷的多少,是磁碟上的磁化程度,光碟上的蝕刻程度,光纖中發光二極體或者「小燈泡」的亮度——而這些全都是(幾乎)連續的物理量,並沒有什麼天然的「只能取兩個值」的屬性。

關鍵並不在於資訊的儲存,而更多地在於對資訊的運算操作。從乙個有些簡化的角度來看,電子計算機其實就是一系列複雜的小開關;計算機進行運算時,這些小開關一邊到儲存器中訪問一些「狀態」,一邊以複雜的方式互相關聯,幾個小開關的開閉控制其他小開關的開閉,這些小開關或許又會反過來影響原來的小開關的開閉,以及通往儲存器的小開關的開閉。

所謂開關,其實就是大小可以大幅調節的電阻。普通的電器開關靠「撥動開關」的動作,在「金屬的低電阻」和「空氣的高電阻」之間進行調節;而計算機中的這些「開關」(場效應電晶體)則是根據「輸入端(柵極)的電壓」,在「自由電荷充足的低電阻」和「自由電荷缺失的高電阻」之間調節。不過,與電器開關不同,在輸入電壓連續變化時,場效應電晶體的電阻是連續可調的;也就是說,到這一步為止還沒有什麼「非用二進位制不可」的必要性。

但是我們再具體考慮一下。比如,考慮乙個最簡單的電路,在電源正極 和負極 之間有兩個大小可調的電阻,大小分別為 (正極側)和 (負極側);兩個電阻相接處的電壓是我們的輸出 。那麼:

怎麼讓這個電路輸出接近 的電壓呢?很簡單,把 選得很小、 選得很大,相當於正極側開關閉合、負極側開關斷開。這是一種輸出。

怎麼讓這個電路輸出接近 的電壓呢?也很簡單,反過來把 選得很大、 選得很小,相當於正極側開關斷開、負極側開關閉合。現在有兩種輸出了。

怎麼讓這個電路輸出比如說 的電壓呢?當然,要選擇 才行。但是這裡有一對矛盾——如果讓 很小,相當於正負極之間接了乙個很小的電阻,根據固定電壓下的焦耳熱公式 ,電路很快就會變得很燙,白白消耗了大量電能;如果讓 很大,那麼發熱的問題是解決了,但是這個大電阻輸出又會很容易被下一級輸入端可能不那麼大的電阻「短路」掉,從而導致輸出電壓不穩定,而且還很容易在輸出電壓高低切換時,由於積累在輸出端的電荷無法及時通過大電阻轉移掉,而導致處理速度變慢。

其他介於 和 之間的輸出電壓選擇也都有類似的問題,只有兩個電阻一小一大數值懸殊的兩種輸出才能既保證總電阻不太小,以免發熱,又保證輸出端有足夠小的電阻接往電源,以免被「短路」或阻礙快速運算。

因此,對於題主的第二個問題——

——我的回答是:電子計算機的結構不適合處理過多的「等級」,不管是亮度等級還是電壓等級:計算機的「可變電阻開關」結構——以及計算機電源只有正負兩極的現象——決定了計算機必須在很底下的層面就選擇二進位制,否則就必須在「大量發熱」和「不穩定且無法提速」之間二選一。

(至於往上一些的層面,前面已經說了可以選擇***進製之類了。)

那麼,能不能用並非只有正負兩極的電源呢?可以自然是可以——實際上前蘇聯也確實搞過從電源提供三種電壓的三進製計算機,名為Сетунь。但是電源線可不比其他的線路,必須要接到計算機中每乙個「可變電阻開關」上,而且還不能有太大的內阻;因此,增加一條電源線可能讓佈線麻煩很多,整合程度越高就更越是如此。

(當然,Сетунь的失敗也有電源劣勢以外的各種因素沒錯。)

那麼,能不能不用「可變電阻開關」結構作為計算機的基礎呢?可以自然是可以——實際上也的確有使用其他的電路結構直接計算、再通過電壓表讀取計算結果的計算機,稱為模擬計算機。設計精良的模擬計算機不僅可以算出輸入電壓之間的四則運算結果,甚至可以直接計算輸入電壓在時間上的積分。

但模擬計算機比起使用「開關」的計算機(數字計算機)又有乙個劣勢,就是難以抗干擾——比如「開關」計算機中某一處收到了乙個 的訊號,那我們既然已知這個訊號本來只可能是 或者 ,就有很大的把握可以說這個訊號本來是 ,只是受到了 的干擾;而模擬計算機中同樣的訊號就只好解釋為「大概或許的確是 ,但其實可能是受到了干擾的 至 的任何乙個電壓吧」了。此外,模擬計算電路對計算元件(電阻、電容、電感)的精確度也有比數字計算電路更高的要求,而且電容和電感又難以整合化、小型化;模擬計算機的種種劣勢決定了數字計算機現在的應用範圍已經遠遠超過了模擬計算機。

綜合各種方面的考慮,計算機在很底下的層面選擇二進位制還是最好使的。

——不過模擬訊號也確實並未完全銷聲匿跡。例如通訊中為了增大頻寬,會在同一時刻同時傳遞多個二進位制位的資訊;此時不僅可能有多於兩種種訊號幅度的區別,甚至連訊號相位的區別都可能成為攜帶資料的方式。不過這基本只出現於資料的儲存與傳遞過程中,接下來處理資料(「計算機」嘛,終歸要「計算」)還是要回歸二進位制的。

5樓:含辛

十進位制才是奇怪的那乙個啊,純粹是因為人類這一物種的特性才被創造出來的,如果宇宙有其他文明存在,那可能從三進製到100進製都會有。

而只有二進位制才是最簡單最優美的數字表達方式,是所有文明的通行數學語言。

6樓:antiAlbert

這是由硬體基礎決定的,很難嗎?

因為最基礎的數字電子器件能表示的最小的資訊就是乙個二進位制數字。硬體基礎決定了二進位制,而不管表觀上什麼樣的資料最終都要以二進位制存在。這樣的本質決定了二進位制肯定是效率最高最不浪費的進製。

至於效率問題,再舉個例子。3bit的二進位制數,可以表示8個數字,4bit二進位制數可以表示16個數字。所以8進製數和16進製制數本質上都是2進製數。

至於10進製數,也是由4bit二進位制數表示的,不過會存在浪費。

7樓:kemout

硬體上目前穩定電位二個,而不是十個,可以說就是為了能用電子表達,所以把十進位制轉成二進位制的

前蘇聯有開發過三進製計算機

哪一天硬體可以表達10個穩定狀態,那就可以開發十進位制十進位制比二進位制效能肯定是指數增加

8樓:某人

因為電路只有通路和斷路(短路被排除是因為個人認為短路沒有意義——就好比一條導線。個人認為在這裡導線不被研究)。我們把通路和斷路寫成0和1,所以就按二進位制來算了。

9樓:提了廢

也不是一定的,不止歷史上存在過十進位制、三進製、八進位制計算機,我們在實驗室也設計過十進位制三位暫存器,而且是本科課程。

我們用的不是燈泡亮度,而是電壓分段,由於檢測電壓的能力不足,只好適應更廣的電壓範圍(0-24),執行起來也好使的很,也容易理解。

不過我提到的那個檢測電壓,設計這套電路相當複雜……也可能是我們學力不足,方法笨,反正檢測電路才是最坑最費料的。十態的檢測電路不是二態檢測電路複雜度的五倍,現在想想起碼有二十倍。

所以我猜,二進位製大流行,一開始是因為便宜,後來是因為習慣(協議)。

為什麼計算機機器語言一定是二進位制?

越約約悅悅 其實考慮的就是乙個問題,進製資料如何用元件的某一訊號量表示。如今的電子元器件都是用電平,電平穩定易操作易傳遞。那要確定底層邏輯運算用多少進製,就看電平怎麼表示。你大可把1V的電平劃分為10份,0V 0.1V表示0,0.1V 0.2V表示1,依次類推,0.9V 1.0V表示9,但問題隨之而...

為什麼計算機現在還在使用二進位制?

sfmmdm 抗干擾 因為只有兩種狀態,那在這兩種狀態之間劃一條界限,即使收到波動也不影響判斷。假如把高低電壓定為0V和5V,那只要高於2.5V就是1,低於2.5V就是0,每種電平能夠容許2.5V的誤差。簡化運算規則 我們用的十進位制,如果要進行運算,就必須背運算口訣,加法表減法表之類的,而十進位制...

計算機為什麼用二進位制不用十進位制?

kuzhushu 最早是10進製的。其中1個齒輪10個齒,另1個是1個齒。這樣,其中1個齒輪轉一圈,另乙個就轉1格 圈 齒輪還好辦,電路就更難了,電路要實現10進製也不難,可是管子要很多啊,這樣做1位10進製的數要用10個管子,做成二制的,同樣是表示10,卻只要8個管子呢。最後的結果是,二制系統,除...