import java.util.Scanner;
public class transformation{
public double A(double x){//十进制转二进制
int y=(int)x;
int a,b,c=1,d,sum=0;
while(y>=1){
a=y/2;
b=y%2;
y=a;
d=cb;
c=c10;
sum=sum+d;
}
int i=1,b1;double sum1=0;
double f=x-(int)x,a1,c1=0.1,d1;
while(f!=0){
a1=f2;
b1=(int)a1;
f=a1-b1;
d1=c1b1;
c1=c10.1;
sum1=sum1+d1;
i++;
if(i==5){
break;
}
}
return sum+sum1;
}
public int B(String N){//二进制转十进制
int sum=0,j=1,n=1;
for(int i=N.length()-1;i>=0;i--){
char ch=N.charAt(i);
switch(ch){
case '0':int x=0;
n=xj;
break;
case '1': x=1;
n=xj;
}
j=j2;
sum=sum+n;
}
return sum;
}
public static void main(String[] args){
Scanner reader=new Scanner(System.in);
transformation me=new transformation();
System.out.println("请选择操作:1,十进制转二进制 2,二进制转十进制");
int a=reader.nextInt();
for(;a!=1&&a!=2;){
System.out.println("输入错误,请重新输入");
a=reader.nextInt();
}
if(a==1){
System.out.println("请输入一个十进制数");
double b=reader.nextDouble();
System.out.println("这个数的二进制数为:"+me.A(b));
}
if(a==2){
System.out.println("请输入一个二进制数");
String c=reader.next();
System.out.println("这个数的十进制数为:"+me.B(c));
}
}
}
用long long 代替int即可