逸之
前一期我們介紹了各種各樣的進(jìn)制,比如,最常見(jiàn)的十進(jìn)制,投票時(shí)畫(huà)“正”字的五進(jìn)制,1周7天的七進(jìn)制,1年12個(gè)月的十二進(jìn)制……
可是,你知道嗎?還有一種我們經(jīng)常聽(tīng)到,平時(shí)卻很少使用的進(jìn)制,這種進(jìn)制是電腦們的語(yǔ)言,電腦們?cè)谒降紫轮v悄悄話就靠它。它就是二進(jìn)制。二進(jìn)制只用0和1兩個(gè)數(shù)字就可以表達(dá)一切,聽(tīng)起來(lái)是不是非常簡(jiǎn)單?但假如你想用二進(jìn)制做計(jì)算,那可就非?!胺慈祟?lèi)”了。
二進(jìn)制的來(lái)歷
三百多年前的某天夜里,一艘客輪正緩緩駛在寂靜的英吉利海峽,德國(guó)哲學(xué)家威廉·萊布尼茨扶著船頭的欄桿仰望星空,他思考著:
白天與黑夜來(lái)回交替,太陽(yáng)下山之后輪到月亮值班,天空與大海遙遙相望;
我從岸上來(lái)到海面,又從海面回到岸上;
我有著缺一不可的左手和右手,也體會(huì)過(guò)快樂(lè)和悲傷……
這就是世界和生命的本質(zhì),任何事物都有正反兩面。如果給我數(shù)字1來(lái)表示正面,給我數(shù)字0來(lái)表示反面,我可以用這兩個(gè)數(shù)字講述世間的一切。
他似乎想起了什么,興奮地跑回船艙,翻開(kāi)之前朋友贈(zèng)予的那本來(lái)自中國(guó)的《易經(jīng)》,拍案叫絕:“對(duì)!對(duì)!長(zhǎng)線和短線就相當(dāng)于0和1,這就是我一直在思考的二進(jìn)制!原來(lái)?yè)碛写笾腔鄣闹袊?guó)古人早就悟出來(lái)了!”
“反人類(lèi)”的二進(jìn)制計(jì)算
用十進(jìn)制的法則推一推,我們就知道二進(jìn)制是逢“2”就進(jìn)位。平常我們用十進(jìn)制數(shù)數(shù),會(huì)說(shuō)0、1、2、3、4、5、6……10。假如我們用二進(jìn)制數(shù)0~ 10,你知道怎么數(shù)嗎?
別著急,讓我們先來(lái)試一試下面這個(gè)找規(guī)律的題目吧:0000 0001 0010____0100 0101 0110____1000 1001 1010
開(kāi)動(dòng)腦筋,這兩條橫線上應(yīng)該填寫(xiě)什么數(shù)字呢?其實(shí),這些由0和1組成的數(shù)字正是0~ 10的二進(jìn)制表示?,F(xiàn)在,讓我們一起試著用二進(jìn)制數(shù)數(shù),從最低位開(kāi)始:
0是0。
1是1。
到2就需要進(jìn)位了,最低位歸零,高一位加上1,就成了10。
3就是在10的基礎(chǔ)上加1,即11。
4就是在11的基礎(chǔ)上再加1,最低位滿(mǎn)2,向高位進(jìn)1后歸零,高位也滿(mǎn)2了,就向更高位進(jìn)1后歸零,結(jié)果就是100。
依次類(lèi)推,無(wú)窮盡也。
當(dāng)數(shù)比較小的時(shí)候.我們可以用這樣的方法推出二進(jìn)制數(shù),但對(duì)于比較大的數(shù),這樣類(lèi)推下去就有點(diǎn)兒費(fèi)時(shí)了。
這時(shí),我們就需要一個(gè)簡(jiǎn)便的推法了:對(duì)一個(gè)全是1的二進(jìn)制數(shù),從右往左,第1位表示1,第2位表示2,第3位表示4(即2個(gè)2),第4位表示8(即2個(gè)4),第5位表示16(即2個(gè)8)……
發(fā)現(xiàn)了嗎?每一位都是前一位的兩倍。越往高位,數(shù)值增長(zhǎng)得越快,第11位就表示1024,第12位表示2048。是不是很有意思呢?
不過(guò),假如我們?cè)谏钪型蝗桓挠枚M(jìn)制交流,可能會(huì)出現(xiàn)下面的情況——
嘿,你知道今年是多少年了嗎?
等等,讓我算一算今年是11111100011年。
上次你跟我借的100元還沒(méi)還我。給。
不不,是二進(jìn)制的100元,換算成十進(jìn)制是4元。
看來(lái)在生活中,比起“反人類(lèi)”的二進(jìn)制,還是十進(jìn)制更便于人們使用呢!
關(guān)于二進(jìn)制還有個(gè)笑話——世界上有10種人,一種是懂二進(jìn)制的,一種是不懂二進(jìn)制的。
這個(gè)笑話到底是什么意思呢?
哈哈,如果你懂二進(jìn)制,你就會(huì)知道這句話中的“10”代表2,也就是“世界上有2種人”啦。
哈哈,原來(lái)如此。所以才說(shuō)一種是懂二進(jìn)制的,一種是不懂二進(jìn)制的!
怎么用二進(jìn)制與電腦“交流”?
這個(gè)問(wèn)題可不簡(jiǎn)單。想要與它交流,就要用它的語(yǔ)言跟它交流。那么,它又是怎么聽(tīng)懂我們的話的呢?
假如我們想讓電腦做個(gè)簡(jiǎn)單的加法:4+8。我們得先讓電腦準(zhǔn)備好兩個(gè)放加數(shù)的“小盒子”,比如:OO01號(hào)盒子和0010號(hào)盒子。
為什么要準(zhǔn)備“小盒子”呢?因?yàn)殡娔X的主要工作是搬運(yùn)數(shù)據(jù)和計(jì)算數(shù)據(jù),它從一個(gè)個(gè)由電子元件組成的“小盒子”里讀取數(shù)據(jù),或者把計(jì)算結(jié)果放進(jìn)去,又或者把一個(gè)“小盒子”里的數(shù)據(jù)“倒”到另一個(gè)“小盒子”里。
接下來(lái)我們要給電腦下命令,怎么讓電腦“聽(tīng)”懂我們的命令呢?好辦,也用二進(jìn)制告訴它!先跟電腦約定:聽(tīng) 到0000號(hào)命令,就把數(shù)字放進(jìn)盒子;聽(tīng)到1111號(hào)命令,就把兩個(gè)盒子加起來(lái)。
我們先用“人類(lèi)的語(yǔ)言”把要和電腦交流的話寫(xiě)出來(lái):
(1) 0000號(hào)命令,把4(二進(jìn)制為0100)放到0001號(hào)盒子;
(2) 0000號(hào)命令,把8(二進(jìn)制為1000)放到0010號(hào)盒子;
(3) 1111號(hào)命令,把0001號(hào)盒子和0010號(hào)盒子加起來(lái)。
人類(lèi)的語(yǔ)言電腦可聽(tīng)不懂.我們只要把二進(jìn)制的部分挑出來(lái)交給它就行了:
0000
0100
0001
0000
1000
0010
1111
0001
0010
是不是電腦聽(tīng)懂了,人卻眼花了?哈哈!