ваш код говорит: если binOrDec
равно 2
или Decimal
, ничего не делать, иначе выведите invalid input
. Компьютеры делают то, что вы говорите им. Я думаю, что вы, вероятно, хотите, чтобы else
перед этой строкой проверял 2 / десятичное число.
«не работает» - не лучшее начало. Помогите нам помочь вам:
- Если он не скомпилируется, сообщите нам об ошибке, которую выдает компилятор, и убедитесь, что номера строк совпадают, иначе вы дадите нам возможность узнать, где искать.
- Если он компилируется, но при его запуске вы получаете ошибку, укажите ошибку, а также все предоставленные вами данные, которые привели к ошибке.
- Если он компилируется, и запустить, и вы получите вывод, но это не тот вывод, который вы ожидали, объясните, что вы набрали, чтобы получить его, что вы ожидали и почему.
Ваш массив bin
имеет тип char[]
. Например, если я задаю двоичное число 1010
, оно содержит 4 символа: 1, 0, 1 и 0. Это символов . персонажи ascii. Символ ascii 1
имеет большое значение цифры c (не 1
):
char c = '1';
System.out.println(1 * c);
Вышеуказанные отпечатки .... 49
.
Итак: aggregate = ((Math.pow(2, i)) * (bin[index]));
умножается на 48
или 49
в зависимости от того, является ли этот символ 1 или 0. Я думаю, вы можете искать if (bin[index] == '1') aggregate = Math.pow(2, i);
.