gpt4 book ai didi

java - 需要帮助修复错误。线程 "main"java.util.InputMismatchException 中出现异常

转载 作者:行者123 更新时间:2023-12-01 13:32:13 25 4
gpt4 key购买 nike

我正在开发一个将二进制转换为十进制的程序。该代码适用于用户输入的小二进制数,但是当我输入长二进制数时,会发生错误,我得到了这个。

线程“main”中出现异常java.util.InputMismatchException:对于输入字符串:“01100101110011011010111000000101” 在 java.util.Scanner.nextLong(Scanner.java:2271) 在 java.util.Scanner.nextLong(Scanner.java:2225) 在 Binary.binToDec(Binary.java:30) 在 Driver.main(Driver.java:27)

这是我的有问题的代码。

 public void binToDec() {

long binary;

Scanner num = new Scanner(System.in);
binary = num.nextLong();
System.out.println("You entered the binary number " + binary);
pw.println("You entered the binary number " + binary);

long decimal = 0;
int power = 0;

while (true) {
if(binary == 0) {
break;
} else {
long tmp = binary % 10;
//System.out.print("tmp: " + tmp + "\n");

decimal += tmp * Math.pow(2, power);

//System.out.println("decimal1: " + decimal + "\n");
//System.out.println("power: " + power + "\n");

binary = binary / 10;

//System.out.println("binary: " + binary + "\n");
power++;
}

}
System.out.println("The decimal conversion is " + decimal + "\n\n");
pw.println("The decimal conversion is " + decimal + "\n\n");
}

我该如何解决这个问题?谢谢。

最佳答案

使用nextLong的重载版本读取二进制输入

binary = num.nextLong(2);

关于java - 需要帮助修复错误。线程 "main"java.util.InputMismatchException 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21505713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com