Для простоты, я получил следующий метод расчета ли число вводится в двоичном (принимает только 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?
Спасибо заранее, ребята!
символ ''1'' имеет значение ascii 49, которое больше 1. –
BTW. На 48 символов меньше, чем' '0'', поэтому вам нужно проверить меньше, чем это возможно. например пространство равно 32. –
заменить 'if (Цифры [i]> 1)' с 'if (Цифры [i]! = '0' && Цифры [i]! = '1')' –