我們前段時間聊了牛頓與萊布尼茨的微積分之爭,萊布尼茨所發明的符號被普遍認為更綜合,適用範圍更加廣泛。

1+1真的等於10,二進制你真的瞭解嗎?

作為17世紀最偉大的數學天才之一,牛頓與萊布尼茨堪稱是數學界的雙子星,互相耀映。

1+1真的等於10,二進制你真的瞭解嗎?

與牛頓不同,萊布尼茨的本質專業是一名律師,經常往返於各大城鎮,可能是坐在馬車上太過無聊,又不能像我們一樣刷手機,所以萊布尼茨非常喜歡在馬車上進行思考,他的許多的公式都是在顛簸的馬車上完成的。他們家祖孫三代都在政府供職,所以他經常自稱為男爵,彰顯自己的貴族身份。

與牛頓一樣,萊布尼茨也是一個多面手,牛頓浸淫於神學無法自拔,而萊布尼茨則在哲學上具有卓越的貢獻,“樂觀主義”就是他提出來的,伏爾泰為了和他對著幹就提出了“悲觀主義”。萊布尼茨經常說:“我們的宇宙,在某種意義上是上帝所創造的最好的一個”。他和笛卡爾、斯賓諾莎被認為是十七世紀三位最偉大的理性主義哲學家。

1+1真的等於10,二進制你真的瞭解嗎?

除此之外,萊布尼茨對於中華文化非常感興趣,他曾經從一些前往過中國傳教的教士那裡接觸到中國文化,之前也從馬可·波羅引起的東方熱留下的影響中也瞭解過中國文化。法國漢學大師若阿基姆·布韋更是和萊布尼茨介紹了《周易》和八卦。萊布尼茨認為古代中國的“禮”、“道”、“太極”等因素構成了支配宇宙的一種精神力量,他對意大利傳教士利瑪竇提出的中國傳統形而上學可以與基督教相統一的觀點十分欣賞,甚至親自撰文予以捍衛。

1+1真的等於10,二進制你真的瞭解嗎?

說到這裡,就要聊到萊布尼茨的另外一項最為卓越的發明——二進制,萊布尼茨曾說“陰”與“陽”基本上就是他的二進制的中國版。他曾斷言:“二進制乃是具有世界普遍性的、最完美的邏輯語言”。

1+1真的等於10,二進制你真的瞭解嗎?

為什麼說萊布尼茨的二進制是他另外一項最為偉大的發明,明明我們現在用的都是十進制。

首先萊布尼茨為什麼會發明二進制,據說這可能是因為宗教的力量。他在寫給魯道夫·奧古斯都公爵的信中這樣提到:(有一個概念)不容易傳授給異教徒:全能的上帝從無創造有。現在我們可以說,數字的起源是世上能最好展示和說明這種力量的事物,它以“一”和“零”或者說“無”的形式呈現,既樸素又簡練。

簡單來說,他認為“0”和“1”是這個世界上最偉大的數字,所以他用數0表示空位,數1表示實位。這樣一來,所有的自然數都可以用這兩個數來表示了。比如1=00000001、3=00000011、5=00000101。

1+1真的等於10,二進制你真的瞭解嗎?

而2進制的加減乘除運算大家可以去網絡上搜尋一下,所以如果有人說1+1=10,不要說人家傻,人家可能用的是二進制。

但自1687年,牛頓力學統治整個科學界近200年。而萊布尼茨創立的二進制在那個年代不但用不上,普通人還根本看不懂,就這樣沉寂了幾百年,直到一個叫“馮諾伊曼”的人讓2進制重見天日,並且發光發熱。

1+1真的等於10,二進制你真的瞭解嗎?

如果把互聯網比作一棟大廈,那麼二進制就是構建這座大廈的磚石。

20世紀,隨著科技的日益進步,所需的計算量日益巨大,靠人工已經無法滿足,雖然在此之前已經誕生了機械計算機,但還是人去操作機器,還沒有實現人與機器的對話。所以當時的科學家便開始構想設計電子計算機,代替人工運算。

1+1真的等於10,二進制你真的瞭解嗎?

1642年,帕斯卡發明第一臺機械計算機——帕斯卡加法器

1944年8月,在IBM和美國海軍部的支持下,從1937年開始研發的艾肯成功研發了世界上第一臺通用自動計算機——馬克1號,即自動程控計算機。該計算機使用了3000多個繼電器,因而又稱繼電器計算機。採用十進制23位數字的加減計算時間為0.3秒,乘法6秒,除法11.4秒。馬克1號計算機長15.5米,高2.4米,重達5噸,有76萬個零件,運行時的聲音非常大。雖然它採用的不是電子控制,(所以它依然需要藉助電流進行運算,最關鍵的部件採用繼電器組成,馬克1號上安裝了大約3000個繼電器。繼電器接通電路表示“1”,繼電器斷開則表示“0”)但仍然被普遍認為是電子計算機的開山鼻祖。

1+1真的等於10,二進制你真的瞭解嗎?

馬克一號


馬克一號是世界上第一部大尺度自動數位電腦,被認為是第一部萬用型計算機。而真正意義上的通用型電子計算機出現於1946年2月14日,名為ENIAC,它是世界上第一臺通用計算機,能夠重新編程,解決各種計算問題。

1+1真的等於10,二進制你真的瞭解嗎?


當時正值二戰時期,那個時候如果新式火炮要發射到指定地點,需要計算火炮的彈道表。這需要進行大量計算。一張彈道表需要計算近4000條彈道,可以說工作量特別巨大。

1+1真的等於10,二進制你真的瞭解嗎?

一發炮彈發射出去,需要100多人用一種手搖計算機算個不停,還經常出錯,費力不討好。當時任職賓夕法尼亞大學莫爾電機工程學院的莫希利於1942年提出了試製第一臺電子計算機的初始設想——“高速電子管計算裝置的使用”,期望用電子管代替繼電器以提高機器的計算速度。

美國軍方得知這一設想後,立即撥款成立了一個以莫希利、埃克特為首的研製小組。終於在1946年2月14日,世界上第二臺電子計算機,世界上第一臺通用計算機埃歷阿克”(ENIAC,譯成中文是“電子數字積分和計算機”)誕生於美國賓夕法尼亞大學。

1+1真的等於10,二進制你真的瞭解嗎?

ENIAC是世界上發明的第一臺電子計算機,當時它仍採用的是十進制。埃歷阿克雖然威力強大,但是它畢竟還很不完善,比如存在著耗電多、費用高的缺點。它的耗電量超過174千瓦,那些個電子管發光又發熱,平均每隔7分鐘要損壞一隻。雖然當初只花了軍械部40萬元的研製費用,然而維護它的費用後來竟超過200萬之巨!埃歷阿克最致命的缺點是程序與計算兩分離。指揮埃歷阿克2萬隻電子管工作的程序指令,被存放在機器的外部電路里。需要計算某個題目前,使用時必須把數百條線路用手接通,像一群電話接線員那樣手忙腳亂地忙活好幾天,才能進行幾分鐘運算。

1+1真的等於10,二進制你真的瞭解嗎?

而採用十進制的埃歷阿克因為計算特別繁瑣,所以計算速度一直不算非常理想。這個時候馮諾伊曼出來了。

1+1真的等於10,二進制你真的瞭解嗎?

兒時的諾伊曼

其實在此之前,物理學和電子學科學家們就在爭論製造可以進行數值計算的機器應該採用什麼樣的結構。人們被十進制這個人類習慣的計數方法所困擾,深陷於十進制的泥沼無法自拔。20世紀30年代中期,馮諾依曼就已經大膽的提出,拋棄十進制,採用二進制作為數字計算機的數制基礎。同時,他還說預先編制計算程序,然後由計算機來按照人們事前制定的計算順序來執行數值計算工作。

而埃歷阿克身上所展現的缺陷,給了馮·諾依曼發揮的舞臺,他起草一份新的設計報告,要對這臺電子計算機進行脫胎換骨的改造。他把新機器的方案命名為“離散變量自動電子計算機”。

1+1真的等於10,二進制你真的瞭解嗎?

當時改造第一臺極其複雜計算機的馮·諾依曼

1945年6月,馮·諾依曼與戈德斯坦、勃克斯等人,為埃德瓦克方案聯名發表了計算機史上著名的“101頁報告”。這份報告奠定了現代電腦體系結構堅實的根基,直到今天,仍然被認為是現代電腦科學發展里程碑式的文獻。報告明確規定出計算機的五大部件(輸入系統、輸出系統、存儲器、運算器、控制器),並用二進制替代十進制運算,大大方便了機器的電路設計。這套方案的革命意義在於“存儲程序”──程序也被當作數據存進了機器內部,以便電腦能自動依次執行指令,再也不必去接通什麼線路。

1+1真的等於10,二進制你真的瞭解嗎?

101頁報告扉頁

人們後來把根據這一方案思想設計的機器統稱為“諾依曼機”。即使計算機發展迭代這麼多年,如今我們已經即將要邁進5G的門坎,可是計算機的設計思路依然沒能夠跳出諾依曼機的掌心。在這個意義上,馮·諾依曼是當之無愧的“計算機之父”。

1+1真的等於10,二進制你真的瞭解嗎?

為什麼會想到利用二進制呢?電子計算機出現以後,使用電子管來表示十種狀態過於複雜,並且所有的電子計算機中只有兩種基本的狀態,開和關。也就是說,電子管的兩種狀態決定了以電子管為基礎的電子計算機採用二進制來表示數字和數據。二進制與十進制的區別在於數碼的個數和進位規律有很大的區別,顧名思義,二進制的計數規律為逢二進一,是以2為基數的計數體制。10這個數在二進制和十進制中所表示的意義完全不同,在十進制中就是我們通常所說的十,在二進制中,其中的一個意義可能是表示一個大小等價於十進制數2的數值。

1+1真的等於10,二進制你真的瞭解嗎?

計算機中的進制與編碼

所以與十進制數相比,二進制數的運算規則要簡單得多,這不僅可以使運算器的結構得到簡化,而且有利於提高運算速度。

用雙穩態電路表示二進制數字0和1是很容易的事情。計算機使用二進制進行編碼,而不是我們熟悉的十進制,最重要的原因是二進制物理上更容易實現。因為電子器件大多具有兩種穩定狀態。比如晶體管的導通和截止,電壓的高和低,磁性的有和無等。而找到一個具有十個穩定狀態的電子器件是很困難的。使用二進制還有運算簡單的優點。十進制有55種求和與求積的運算規則,二進制僅有各有3種,這樣可以簡化運算器等物理器件的設計。另外,計算機的部件狀態少,可以增強整個系統的穩定性。

1+1真的等於10,二進制你真的瞭解嗎?

二進制數與十進制數之間的轉換相當容易。人們使用計算機時可以仍然使用自己所習慣的十進制數,而計算機將其自動轉換成二進制數存儲和處理,輸出處理結果時又將二進制數自動轉換成十進制數,這給工作帶來極大的方便。

1+1真的等於10,二進制你真的瞭解嗎?

用二進制表示數據具有抗干擾能力強,可靠性高等優點。因為每位數據只有高低兩個狀態,當受到一定程度的干擾時,仍能可靠地分辨出它是高還是低。

而二進制代碼語言則稱為機器語言,計算機可以直接識別,不需要進行任何翻譯的語言。每臺機器的指令,其格式和代碼所代表的含義都是硬性規定的,故稱之為面向機器的語言,也稱為機器語言。它是第一代的計算機語言,機器語言對不同型號的計算機來說一般是不同的。

1+1真的等於10,二進制你真的瞭解嗎?

直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,並分成若干段,各段的編碼表示不同的含義,例如某臺計算機字長為16位,即有 16個二進制數組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執行各種不同的操作。

1+1真的等於10,二進制你真的瞭解嗎?

二進制文件中的中間代碼

二進制數可以分為有符號數和無符號數,有符號數,又可以分為原碼、反碼、補碼。2進制在計算機裡有它特定的表示方法,以及對應的彙編代碼。

當CPU從指令寄存器拿到一條指令地址,它會根據讀出來數值進行解釋,加到AL寄存器中。這個指令實際上既包含了控制,又包含了數據。

1+1真的等於10,二進制你真的瞭解嗎?

所以計算機在計算3+8的時候,就是一個類似的過程。根據計算機架構的不同,可能將計算放置到寄存器中計算,或者將計算放置到內存中計算,或者在某特定的計算單元中計算。

每個運算單元都有自己特有的指令集,以便對輸入的數據進行加工,產生輸出。比如CPU,GPU,以及各種可編程接口芯片。 同一個二進制片段數據,在不同的模塊或者運算單元中,都會有不同的解釋。可能解釋為數據,也可能解釋為控制指令。

1+1真的等於10,二進制你真的瞭解嗎?

各位明白了,真正天才的發明無論過了多少年都不會蒙塵的,感謝萊布尼茨做出來如此卓越的發明,我們如今用著的電腦、手機都是通過二進制來進行運算的,二進制構建了整個網絡時代。

我們現在享受到的一切科技成果,都是先人不懈的努力探索,感謝他們的付出,帶給我們如此美好的生活!

1+1真的等於10,二進制你真的瞭解嗎?

相關推薦

推薦中...