十进位制与二进位制是怎样换算的
平时,人们习惯用的是十进位制的数,而电子计算机运算是用二进位制的数。一个题目经过电子计算机运算后所得到的答案,我们希望仍用十进位制表示出来,因此,这里就存在一个相互转换的问题。那么,十进位制的数怎样换算成二进位制的数?二进位制的数又怎样化成十进位制的数呢?
(一)我们先看看十进位制的整数,是怎样转换成二进位制的整数的?(整数10→2)
1.将一个十进位制的整数,转换成二进位制时,只要不断地“用2来除”,每次所得的余数(必为0或1)挨次排列起来,就是自低位到高位的二进位制的整数。
例如:十进位制的23,相当于二进位制的多少?
![]() |
∴ 23十进=10111二进。
2.利用2n及其十进位制数的对照,也可以转换。下面是2n及其对应的十进数表:
![]() |
假设要化的数为S,我们只要拿S与表中的十进数相比,凡是大于S的那些位上的二进位制值必为0;找到小于S又最接近S时,该位上的二进位制值必为1,再将S减去这个十进数,得出的差再按上述规则去算。这样一直比下去,就能求出S的二进位制的数了。
例如:23十进相当于二进位制的多少?
因为23<32,在位以上的二进数必为0,而16<23,又最接近23,所以24位上的二进数为1;再求出23-16=7。
因为又最接近7,所以位上的二进数也为1;再求出7-4=3。
因为2<3又最接近3,所以21位上的二进数也是1。3-2=1,正好是20,所以20位上的二进数也是1。拼起来就得到000010111,也就是10111。
∴ 23十进=10111二进。
用惯以后,这个方法对于换算庞大的十进数是很方便的,而这一表格又可以随时列出来。
(二)十进位制的小数怎样化成二进位制的小数呢?(小数10→2)
1.将一个十进位制的小数,要化成二进位制的小数时,只要不断以2去乘,每次所得的整数(必为0或1)挨次排列起来,就是从高位到低位的二进位制的小数。(注意:每次以2去乘时,必须只乘小数部分。)
例如:0.8125十进等于二进数多少?
![]() |
∴ 0.8125十进=0.1101二进。
上面这个例子,是个化得尽的特例。事实上,极大多数的十进位制小数,要化成二进位制小数是化不尽的——永远算不完(每次乘2以后所得的“积”的小数部分不等于“零”),这时候只能取近似值。那么,究竟取多少位呢?这就要根据需要来决定了。但是,不论怎样,都能满足我们所要求的精度。这与十进位制中,除不尽的除法很相似(例如:1÷3=0.3333……),这时只能取近似值。取近似值时,十进位制是采用4舍5入;在二进位制中则采用0舍1入的办法。
2.利用2-n及其对应的十进数表(即下表)的对照,也可以转换,具体方法与整数转换的第二种方法完全一样。
![]() |
(三)二进位制的整数,怎样转换成十进位制的数呢?(整数2→10)
1.上面介绍了十进位制整数换算成二进位制整数的方法(整数10→2),用它的逆运算,就可得到由二进位制整数换算成十进位制整数(整数2→10)的方法,其步骤如下:
将要转换的二进位制的数,自高位开始,不断地“乘以2,将它的积加在低一位的数上”,最后所得的数,就是这个二进位制数所对应的十进位制的数。
例如:llOl二进等于十进数多少?
![]() |
∴ 1101二进=13十进。
2.以2n所对应的十进数(见第310页的表)相加,就可得到十进位制的数。
例如:1101=1×23+1×22+0×21+1×20
=8+4+0+1
=13。
(四)二进位制的小数,怎样转换成十进位制的小数呢?(小数2→10)
1.前面讲了十进位制小数,换算成二进位制小数的方法(小数10→2),它的逆运算就是二进位制小数化成十进位制小数的方法(小数2—10):
先把要化的二进位制小数,自低位开始,不断地“除以2,将它的商加到高一位的数上”,最后再除以2,所得之数就是十进位制的小数。
例如:0.1101二进等于十进数多少?
![]() |
∴ 0.1101二进=0.8125十进。
2.以2-n所对应的十进数(见第312页的表)相加,也可得到十进位制的小数。
例如:0.1101=1×2-1+1×2-2+0×2-3+1×2-4
=0.5+0.25+0+0.0625
=0.8125。
电子计算机在运算时,要把十进位制转换成二进位制,最后又要把二进位制化成十进位制,这岂不麻烦吗?事实上,这个反译工作是由电子计算机自己去完成的,因此,使用起来非常方便。