志光
二進制被視為當(dāng)今所有數(shù)字計算的基礎(chǔ),0和1這兩個數(shù)字讓我們的生活發(fā)生了翻天覆地的變化。二進制算術(shù)是誰發(fā)明的呢?
很長一段時間以來,人們都認(rèn)為二進制的發(fā)明者是18世紀(jì)初的戈特弗里德·威廉·萊布尼茨。不過最近有研究者發(fā)現(xiàn),早在萊布尼茨之前的300年,在一個位于太平洋的小島上——法屬波利尼西亞的曼加雷瓦,已經(jīng)有人會用二進制了。
很多人認(rèn)為,人類之所以最青睞十進制,是因為我們有10根手指。而純粹的二進制算術(shù)是以2為基數(shù)的,不是十進制所使用的10。
下面,我們來看一下二進制的計算方法。以加法為例:1+1=10。由于二進制里只有0和1,所以1和1相加后就會進一位變成二位數(shù)10,道理和十進制里的1+9=10是一樣的。
二進制之所以特別適合計算機使用,是因為在計算機編碼中,電脈沖或開關(guān)的接通和閉合狀態(tài)用0和1兩個數(shù)字來表示會特別方便。
1703年,萊布尼茨寫下了下面的算式:
二進制:100+10+1=111 十進制:4+2+1=7
1000+100+1=1101 8+4+1=13
發(fā)現(xiàn)了嗎?二進制有兩個厲害的地方:
第一, 同學(xué)們不必再記住任何加減乘除的計算數(shù)字,只要記住1+0=1,
1+1得到進位的1,即10就可以了。比如,100+101=1001。這樣一來,計算問題就被大大地簡化了,這絕對是個很大的進步。但二進制也有缺點,就是需要很多位來表示一個比較大的數(shù)字。
第二,二進制數(shù)除了0和1的表示方法外,在由二進制轉(zhuǎn)換成十進制的時候,還可以表示成2的n次方的形式。比如13表示成二進制是1101 ,可以表示成:13=23+ 22+(0×21)+20;15表示成二進制是1111,可以表示成 :15=23+ 22+21+20。
這個規(guī)則對所有的十進制數(shù)都有效。
最近有科學(xué)家發(fā)現(xiàn),曼加雷瓦人在1450年之前就找出了能夠結(jié)合這兩大優(yōu)點的計數(shù)方式, 并且還能解決二進制表示大數(shù)時位數(shù)過多的問題。
雖然現(xiàn)在那兒的人也使用阿拉伯?dāng)?shù)字,不過在這之前,他們用的計數(shù)方式非常特別:把十進制和二進制結(jié)合起來。
除了用不同的單詞來表示現(xiàn)在阿拉伯?dāng)?shù)字中的1到10,還有一些表示2的次方和10相乘的單詞。
下面我們來試著還原它們的數(shù)字形式:
takau(K) 代表10
paua(P) 代表20
tataua(T) 代表40
vara(V) 代表80
接著,TPK=70,TK7=57,比起用二進制表示的70和57,是不是簡化了很多呢?
這樣做最大的好處就是保留了二進制中最關(guān)鍵的部分——算術(shù)簡化,不用記住很多繁瑣的計數(shù)規(guī)律,只要記住幾條簡單規(guī)則即可。
說起萊布尼茨,除了二進制的發(fā)明,他還是一位非常著名的哲學(xué)家和數(shù)學(xué)家。在研究中,他漸漸意識到,計算在某種意義上是機械化的。也就是說,可以讓機械裝置來做計算。
當(dāng)時,帕斯卡已經(jīng)發(fā)明了一種能計算的機器,還批量生產(chǎn)了50臺,但這種機器只能算加法。而萊布尼茨想要一種加減乘除都能算的機器。他還想做一個簡單的“用戶界面“,上面有操作扳手,扳向一方做乘法,扳向另一方做除法。為了發(fā)明這樣的機器,他花費了很大的心力。他不但找來工程師幫忙,還為它寫了廣告和使用說明。
他花了40多年的時間來調(diào)試,“計算器”卻總是出現(xiàn)各種各樣的問題,他投入的資金已相當(dāng)于現(xiàn)在的100萬美元。
現(xiàn)在,這臺傾注了萊布尼茨無數(shù)心血的機器在哪里呢?答案是德國漢諾威的萊布尼茨文獻館。它被放在一個玻璃盒里,看上去非常新。這臺機器包括一個便攜的木制收納箱和一個曲軸搖柄。另外,如果一切運轉(zhuǎn)正常,輕搖幾分鐘就能夠賦予它處理一切基礎(chǔ)數(shù)學(xué)運算的能力。
真希望萊布尼茨能活到今天,看到我們現(xiàn)在所使用的計算機,他一定會非常喜歡。