二进制表示一般用原码表示,计算加减时用补码表示。
这里的二进制小数是用的定点数表示,不是用浮点数表示的。
0X01 二进制转十进制
- 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
例子:
[01101100]2=0×27+1×26+1×25+0×24+1×23+1×22+0×21+0×20=10810
[101.101]2=1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=5.625
注:这里的二进制小数是原码表示的,使用的定点数表示,没有用浮点数表示
0X02 十进制转二进制
1.十进制整数转二进制
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例子:求17310的二进制
2.十进制小数转二进制
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例子:求0.812510的二进制
例子:173.812510=17310+0.812510=101011012(原)+0.11012(原)=10101101.11012(原)
-1.2510=10000001.012(原)
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又 得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
十进制小数转二进制
如:0.62510=0.1012
0.6252=1.25======取出整数部分1
0.252=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
再如:0.710=0.1011001102
0.72=1.4========取出整数部分1
0.42=0.8========取出整数部分0
0.82=1.6========取出整数部分1
0.62=1.2========取出整数部分1
0.22=0.4========取出整数部分0
0.42=0.8========取出整数部分0
0.82=1.6========取出整数部分1
0.62=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0