十进制小数转换为二进制

 一、十进制小数转化为二进制小数

十进制小数转换为二进制小数采用的方法:乘 2 取整,顺序排列

具体做法:

  • 用 2 乘十进制小数,可以得到成积,
  • 将乘积的整数部分取出,再用剩余的小数部分乘 2,可以得到一个积。
  • 乘积的整数部分取出,再用剩余的小数部分乘 2,可以得到一个积。
  • .........

按照这个步骤重复多次,直到乘积中的小数部分为 0。

此时0 或 1为2进制的最后一位。或是达到要求的精度为止。

然后将取出的整数部分顺序排列起来,先取出来的整数作为二进制的高位有效位,后取的整数作为低位的有效位(顺序提取,自上而下)

实例1:


 0.1875 = (0.0011)B

0.1875* 2 = 0.375 _______  取出整数部分 0;

0.375 * 2 = 0.75 ————— 取出整数部分 0;

0.75 * 2 = 1.5 —————— 取出整数部分 1;

0.5 * 2 = 1.0   —————— 取出整数部分 1;

顺序取出,所以最后结果为 0.0011...

实例2:


 0.2 = (0.00110011)B

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;

0.4 * 2 = 0.8 ——————— 取出整数部分 0;

0.8 * 2 = 1.6 ——————— 取出整数部分 1;

.............

顺序取出,所以最后结果为 0.00110011

 

二、二进制小数转换成十进制

二进制转换成十进制的基本做法是:将二进制数首先写成加权系数展开式,然后按十进制加法规则求和,按权相加。

实例1:


 (1101.01)B 转换成十进制的小数

1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0) + 0*(2^ -1) + 1*(2^ -2)

= 8 + 4 + 0 +1 + 0 + 0.25

= 13.25

实例2:


 (1.101)B转换成十进制小数

1*(2^0) + 1*(2^ -1) + 0*(2^ -2) + 1*(2^ -3)

= 1 + 0.5 + 0.125

= 1.625

三、十进制数转换为二进制数

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换,然后再合并。

十进制整数转换为二进制整数采用 除2取余,倒序排列 的方式。

具体方法:

  • 十进制整数除以 2 ,可以得到一个商和余数;
  • 再用 2除商,又可以得到一个商和余数;
  • ……

重复运算,直到商为 0 为止,然后再把得到的余数作为二进制的低位有效,得到的余数作为二进制的高位有效位,依次排列起来。

原文地址:https://www.cnblogs.com/nyw1983/p/11986702.html