分享一个有意思的小程序!!
程序员文章站
2022-03-12 18:22:06
...
题目: 从键盘输入某个十进制小数,转换成对应的二进制小数并输出。(查询十进制小数转换成二进制小数的算法,使用循环来实现。最多保留小数位后7位数字即可)。
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数:");
double a=sc.nextDouble();
//取出整数部分
int z=(int)a;
//取出小数部分
double x=a-z;
//把整数部分转换为二进制
long sumz=0,n=1;
for (int i=z;i>0;i/=2 )
{
sumz+=i%2*n;//每次求余得到的0或1乘n
n*=10;//相当于每次向前进一位
}
//把小数部分转换为二进制(乘2取整)
double sumx=0.0,k=0.1;
for(int h=0;;k/=10){
x=(x-(int)x)*2;//小数部分减去整数部分,每次乘2取整数
sumx+=(int)x*k;//整数部分乘
if(x-(int)x==0|| h==7)//x等于1时结束。或者保留小数点后位7
break;
}
System.out.println("转换为二进制为:"+(sumz+sumx));
上一篇: expdp导出慢的问题
下一篇: Eclipse 的一个挺有意思的插件