gpt4 book ai didi

java - 简单的数学题?

转载 作者:行者123 更新时间:2023-11-29 10:00:03 24 4
gpt4 key购买 nike

为了简单起见,我有以下方法来计算输入的数字是否为二进制(只接受 1 和 0)

public static void checkBinary(int BinaryNumber) {
String bNumber = String.valueOf(BinaryNumber);
char[] Digits = bNumber.toCharArray();
for (int i = 0; i < Digits.length; i++) {
if (Digits[i] > 1) {
System.out.println("You can't have the digit " + Digits[i]);
System.out.println("Your number is not a binary number.");
System.exit(0);
}
}
}

但是,当我尝试运行 checkBinary(1010); 时,我得到以下输出

You can't have the digit 1
Your number is not a binary number.

知道为什么它会将初始 1 计为大于 1 吗?

提前谢谢大家!

最佳答案

ASCII '1' 与 1 不同。您应该比较:

if (Digits[i] > '1') {
...
}

ASCII“1”是十进制的 0x31 或 49。

编辑:另外,请注意,如果输入数字为负数,您的字符数组中将有一个 ASCII“-”(0x2d,dec 45)。真的,你应该只与 '0' 和 '1' 进行比较,而不是使用 >

关于java - 简单的数学题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926846/

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