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