| 
 
| /* 十进制小数转换成二进制小数采用“乘2取整,顺序排列”
 方法:用2乘以十进制小数,将乘积的整数部分取出,再用2乘余下的小数部分。。。。
 直到乘积的整数部分为0;或者此时0或者1为二进制的最后一位。或者达到要求的精度为止
 十进制小数转二进制
 0.625=(0.101)B
 0.625*2=1.25=====取出整数部分1
 0.25*2=0.5=======取出整数部分0
 0.5*2=1==========取出整数部分1,符合上述条件结束
 自上而下写出结果(0.101)B
 */
 import java.util.Scanner;
 class TestDoubleBinary
 {
 public static void main(String[] args)
 {
 Scanner sc = new Scanner (System.in);
 System.out.println("----十进制小数转换二进制----");
 System.out.println("-----输入十进制小数部分------");
 double bi = sc.nextDouble();
 System.out.print(bi+"————"+"("+(int)bi+".");
 //判断输入的数字是否大于1,是的话只拿到小数部分带入循环
 if (bi>1)
 {
 bi=bi-(int)bi;
 }
 //判断是否是等于1
 while(bi!=1)
 {
 bi=bi*2;
 
 if(bi>1)
 {
 bi=bi-1;
 System.out.print(1);
 }else if(bi<1)
 {
 System.out.print(0);
 }else
 //如果bi的值乘2后正好等于1输出1并跳出while
 {
 System.out.print(1);break;
 }
 }//end while
 
 System.out.println(")B");
 }
 }
 
 
 
 | 
 |