十进制小数转二进制方法(Java)
重点:
1.整数部分的十进制转二进制
2.小数部分的十进制转二进制
3.可变的字符串类String Builder的使用方法(包含字符串反转)
import java.util.*;
import java.util.concurrent.SynchronousQueue;
//import java.lang.*;
public class number2 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个小数:");
StringBuilder sb = new StringBuilder("");
StringBuilder sb2 = new StringBuilder(".");
//sb.append("1");
double i = sc.nextDouble();
int zhengshu ;
double xiaoshu;
zhengshu = (int)i;
xiaoshu = i%1;
/*
System.out.printf("%d\n", zhengshu);
System.out.printf("%f\n", xiaoshu);
System.out.printf("%d\n", zhengshu%2);
sb.append("1");
System.out.print(sb.toString());
*/
for(int j = 0;zhengshu>0;j++)
{
if(zhengshu%2 == 0)
{
sb.append("0");
zhengshu/=2;
}
else if((zhengshu%2) == 1)
{
sb.append("1");
zhengshu/=2;
//System.out.println("hhhh");
}
}
/*
System.out.print(sb.toString());
System.out.print("\n");
System.out.print(sb2.toString());
System.out.print("\n");
*/
for(int j = 0;xiaoshu!=0;j++)
{
if(xiaoshu*2>=1)
{
xiaoshu *= 2;
xiaoshu -=1;
sb2.append("1");
}
else
{
xiaoshu *= 2;
sb2.append("0");
}
}
/*
System.out.print(sb2.toString());
System.out.print("\n");
System.out.print(sb.toString());
System.out.print("\n");
*/
sb.reverse();
System.out.print(sb.toString());
System.out.print(sb2.toString());
}
}