D代表十进制,B代表二进制,O代表八进制,H代表十六进制
比如:怎样把十进制125.625转换2进制、8进制?
我们可以把125.625分成125和0.625
先看整数部分125,用长除法,125除2得62(余1),62除2得31(余0),31除2得15(余1),15除2得7(余1),7除2得3(余1),3除2得1(余1),1除2得0(余1)。除到0结束,把余数倒着写出来1111101,所以125(D)=1111101(B)
再看小数部分0.625,用长乘法,0.625乘2得1.250(进1),0.250乘2得0.5(进0),0.5乘2得1.0(进1)。乘到1结束(如果一直乘也得不到1,就是无限循环),把进位数顺序写出来101,所以0.625(D)=0.101(B)
加起来125.625(D)=1111101.101(B)
八进制同理,长除法的除数是8,余数0~7,长乘法的乘数是8,进位数是0~7;
十六进制亦然,长除法除数16,余数0123456789ABCDEF(也就是0~15,9以后用A~F表示),长乘法乘数是16,进位数0~F。
再例如:怎样把二进制数1000110转成十进制?
标准做法是“按权相加”法,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。也就是从最后一位开始算,依次列为第0、1、2...位,第n位的数(0或1)乘以2的n次方,得到的结果相加就是答案。
我们观察到数字中共有三个1,即右边第二位一个,第三位一个,第七位一个。
简单计算方法是:2的2-1次方+2的3-1次方+2的7-1次方即:2+4+64=70(次方数就是1所在的位数减1。)
应用举例:
十进制125.625转换2进制、8进制 → 125.625(D)=1111101.101(B)=175.5(O)
十进制69.625转换2进制16进制8进制 → 69.625(D)=1000101.101(B)=45(H)=105.5(O)
十进制127转换同上 → 127(D)=1111111(B)=7F(H)=177(O)
十六进制10A转换10进制 → 10A(H)=266(D)
八进制670转换10进制 → 670(O)=440(D)
二进制11111111000011转换10进制 → 11111111000011(B)=16323(D)
十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
如:把255转换为二进制。
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
所以255(D)=11111111(B)
十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。
具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
如:把0.625(D)转换为二进制,应该是0.101(B),计算过程为:
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
再如:把0.7(D)转换为二进制,应该是0.101100110(B),计算过程为:
0.7*2=1.4========取出整数部分1
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
关于计算机进制的详细介绍,可参考百度百科
十进制转二进制、
十六进制举例说明等等。
[TOP]