二進(jìn)制與十進(jìn)制漫談
我們都知道,0,1,2,3,4,5,6,7,8,9是十進(jìn)制的10個(gè)基數(shù)。而二進(jìn)制的基數(shù)只有0和1兩個(gè)。
對(duì)于10進(jìn)制來(lái)說(shuō),9后面的那個(gè)數(shù)字是10,我們可能從來(lái)沒(méi)想過(guò),9后面的那個(gè)數(shù)字為什么是10呢?0到9是人為規(guī)定的,但數(shù)字是無(wú)窮的,人為不可能規(guī)定后面的無(wú)窮個(gè)數(shù)字是什么,那么9后面的數(shù)字一定就有規(guī)律。我們知道,9+1要進(jìn)位啊,進(jìn)位以后在十位加1, 這沒(méi)錯(cuò)。但我們還可以這樣理解,0到9是單個(gè)數(shù)字,9后面就沒(méi)有單個(gè)數(shù)字了,所以只能是0到9里面取出兩位的組合來(lái)表示9后面的那個(gè)數(shù)字,按最小的來(lái),00,還是表示0,01還是1,然后就是
10最小了,所以9后面的那個(gè)數(shù)字就規(guī)定為10,這也和剛才的進(jìn)位后加1的原則相符合。
我們都知道,一個(gè)十進(jìn)制數(shù)要轉(zhuǎn)換為二進(jìn)制,可以用長(zhǎng)除法,如下圖:

最后得出125的二進(jìn)制數(shù)。這種方法當(dāng)然可以,但容易出錯(cuò),也麻煩。
我們可以這樣考慮:125的5是個(gè)位,代表數(shù)字5;2是十位,代表數(shù)字20,1是百位,代表數(shù)字100,也就是10^0,10^1,10^2,等等。同樣,對(duì)于二進(jìn)制110,0代表2^0,兩個(gè)1分別代表2^1和2^2,也就是2和4。
那么,對(duì)于125來(lái)說(shuō),2的幾次方和它最接近呢?應(yīng)該是2^6=64,這個(gè)時(shí)候就在2^6這個(gè)位置記為1,然后125-64=61,同樣的32和它最接近,等等,過(guò)程如下:

我們看到,這個(gè)分解過(guò)程其實(shí)就是125=64+32+16+8+4+0+1,就對(duì)應(yīng)于二進(jìn)制

至于二進(jìn)制串里面那個(gè)0的出現(xiàn),是因?yàn)?4+ 32 + 16 +8 +4=124,而125-124=1<2^1,所以
2^1這個(gè)位置不能是1,只能是0,因?yàn)?24+2=126已經(jīng)超過(guò)125了,但這個(gè)0絕對(duì)不能沒(méi)有,就像405少了0以后就變成了45,兩者是完全不同的。上述轉(zhuǎn)變方法過(guò)程中,因?yàn)樽罡呶皇?/p>
2^6,所以轉(zhuǎn)變后的二進(jìn)制一定是7位,原因是要包含2^6到2^0之間的每一個(gè)數(shù)字。上述方法比起長(zhǎng)除法來(lái),應(yīng)該更方便簡(jiǎn)單一些。
那么,計(jì)算機(jī)里面為什么一定要采用二進(jìn)制呢?
這是因?yàn)橛?jì)算機(jī)的CPU、內(nèi)存等器件都是由二極管三極管構(gòu)成的:



而它們都相當(dāng)于一個(gè)開(kāi)關(guān)

,開(kāi)關(guān)只能有兩種狀態(tài),開(kāi)或者關(guān),所以對(duì)應(yīng)著數(shù)字1和0,只不過(guò)普通開(kāi)關(guān)是由人去按動(dòng),而二極管三極管這樣的開(kāi)關(guān)是由電去按動(dòng)。也就是說(shuō),計(jì)算機(jī)里面采用二進(jìn)制不是什么人要故意這樣做,而是由計(jì)算機(jī)的物理特性決定的。

在上面的電路中,假設(shè)ABCD對(duì)應(yīng)的二進(jìn)制為1101,那其實(shí)就對(duì)應(yīng)著(5v,5v,0v,5v)這樣的電壓,也就是說(shuō),計(jì)算機(jī)里面二進(jìn)制的1對(duì)應(yīng)著一個(gè)高電壓(5v),0對(duì)應(yīng)著低電壓(0v)。