2.十進制與二進制的互相轉化
今天,當我們寫上一個數目 1997 時,實際上意味著我們使用了“十進制”數,即
1997=1×1000+9×100+9×10+7×1
也就是說:1997 中含有一個 1000,九個 100,九個 10 與七個 1。
在表 1 中可以看到:二進制數 10 表示十進制數 2;二進制數 100,表示十進制數
66
4;二進制數 1000,表示十進制數 8;二進制數 10000 表示十進制數 16;…;可
以看出規律:二進制數 100000 應該表示十進制數 32,…。那么我們寫下一個二進制
數 10110,則應表示它含有一個 16,一個 4 與一個 2,也就是
10110=1×16+0×8+1×4+1×2+0×1
明白了上面所說的兩點,則二進制與十進制之間的轉化的道理就容易懂了。為了
敘述的方便,我們約定:用( )2表示括號內寫的數是二進制數,如(1011)2;用( )
10 表示括號中寫的數是十進制數,如(37)10。
例 1 把(10110)2改寫成十進制數。
解 (10110)2=1×16+0×8+1×4+1×2+0×1
=16+4+2
=(22)10
例 2 把(1110101)2改寫成十進制數。
分析:因為位數太多,我們先從低位寫起。
解 (1110101)2=1×1+0×2+1×4+0×8+1×16+1×32+1×64
=1+4+16+32+64
=(117)10
67
從上面兩道例題可以看到:將一個二進制數寫成十進制數的第一步驟是:將二進
制數的各數位上數字改寫成相應的十進制數。因為是“滿二進一”,所以高位是相鄰
低一位數的 2 倍。一個二進制數的各個數位(由低位到高位)對應十進制數的規律是:
1,2,4,8,16,32,64,128,256,512,1024,…
第二個步驟是將各數位上對應的十進制數求和,所得結果便是相應的十進制數。
再看一題。
例 3 將(110100111)2改寫成十進制數。
分析:還是由低位寫起。
解 (110100111)2=1×1+1×2+1×4+0×8+0×16+1×32+0×64+1×128+1×256
=1+2+4+32+128+256
=(423)10
下面我們介紹如何將一個十進制數改寫成相應的二進制數。
例 4 把(60)10改寫成二進制數。
解 (60)10=32+28
=32+16+12
=32+16+8+4
68
=32+16+8+4+0×2+0×1
=(111100)2
說明:從解題過程中立即便能看出,將十進制數寫成二進制數的過程,正好與將
二進制數改寫成十進制數的過程相反:先由高位開始考慮,將十進制數盡可能地湊出
相應二進制數的最高位,然后逐步往下進行。
例 5 把(45)10改寫成二進制數。
分析:(45)10不足 64,所以它對應的二進制數的最高位是 32,即 45=32+13,
剩下的 13 不足 16,則向下一位考慮。45=32+0×16+(8+5),剩下的 5 中包含一
個 4,即 45=32+0×16+8+4+1,最后一位數是 1,又不足 2,所以對應的二進位數
又空一位。
解 (45)10=32+0×16+8+4+0×2+1
=(101101)2
練一練:
(1)將(31)10改寫成二進制數;
(2)將(78)10改寫成二進制數。
下面我們再介紹一種將十進制數寫成二進制數的常用方法--除二倒取余法。例
如要將(71)10寫成二進制數,參見下式。我們將 71 除以 2,余數 1 相應寫在右邊(如
果除盡,余數則寫 0);再將商 35 除以 2,余數 1 相應寫在右邊;再將這步的商 17
69
除以 2,重復上述過程,直到商等于 1 為止。并且最后一步的商“1”也寫到右邊余數
那一列的最下面。最后將這列余數由下到上寫成一行數,這行數便是(71)10的二進
制數表示法。即
(71)10=(1000111)2
例 6 用除二倒取余法將(38)10寫成二進制數。
解 ∵
∴(38)10=(100110)2
例 7 用兩種方法將(107)10改寫成二進制數。
解 方法一
(107)10=64+43
=64+32+11
=64+32+0×16+8+3
=64+32+0×16+8+0×4+2+1
70
=(1101011)2
方法二 ∵
∴(107)10=(1101011)2
練習九
1.把下面的二進制數改寫成十進制數。
①(10001)2; ②(11000)2;
③(101110)2; ④(111101)2;
⑤(1101001)2; ⑥(11011010)2。
2.把下面的十進制數改寫成二進制數。
①(19)10; ②(26)10; ③(54)10;
④(81)10; ⑤(123)10; ⑥(180)10。
3.現有 1 克、2 克、4 克、8 克的砝碼各一枚,在天平上能稱出多少種不同重量的
物體?想一想這是為什么?與二進制有關嗎?
71
十、二進制數的四則運算
同學們一定記得,剛上一年級學習加法運算時有加法口訣到了學習乘法的時候,
又有“九九乘法口訣表”。背誦“九九表”對每個小同學來說都是一件十分辛苦而費
時的事,所以當時大家都希望“九九表”能夠簡單一些吧?由于我們使用的是十進制,
所以它的四則運算法則不可能太簡單。現在我們學習了二進制數,而二進制數中只有
兩個獨立的符號“0”與“1”,所以二進制數的四則運算法則就簡便多了!
加法法則:
0+0=0;0+1=1;
1+0=1;1+1=10。
乘法法則:
0×0=0;0×1=0;
1×0=0;1×1=1。
上面列出的八條二進制運算法則可以歸納成八個字:“格式照舊,滿二進一。”
利用這一規則,可以很容易地實現二進制數的四則運算。只是對于減法,當需要向上
一位借數時,必須把上一位的 1 看成下一位的(2)10。
下面是一些例子,右邊列的是十進制下的對照:
加法運算:
72
(100)2+(110)2=(1010)2
1+1=10,本位記 0,并向高位進 1(即“滿二進一”)
4+6=10
減法運算:
(1100)2-(1001)2=(11)2
被減數不夠減,向高位借 1 當 2,2-1 得 1。
12-9=3