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