【发布时间】:2018-09-01 14:58:21
【问题描述】:
我正在编写一个 java 程序来将二进制数转换为十进制数,我已经设法让我的程序在这方面工作。
我的问题是我该如何做才能让用户输入二进制数,否则会弹出错误并且问题会结束? 另外,如何重复我的语句,以便用户可以计算多个二进制数转换?
如果您给出答案,您能否解释每个步骤的工作原理并展示代码的外观?
我目前的程序是这样的:
public static void main(String[] args) {
Scanner input = new Scanner( System.in );
System.out.println("Enter a binary number: ");
int binarynum =input.nextInt();
int binary=binarynum;
int decimal = 0;
int power = 0;
while(true){
if(binary == 0){
break;
} else {
int temp = binary%10;
decimal += temp*Math.pow(2, power);
binary = binary/10;
power++;
}
}
System.out.println("Binary = "+binarynum+" Decimal = "+decimal); ;
}
【问题讨论】:
-
String input; while (!(input = input.nextLine()).matches("[01]+")) System.out.println("Invalid binary number. Please try again: "); int binarynum = Integer.parseInt(input); -
请注意,您的方法适用于非常有限的一组值。它会在
10000000000上失败,因为它超出了int范围。 -
您应该将输入作为字符串获取,并将小数也生成为字符串。目前您只是将二进制重新计算为二进制。