Сергей Ильин
35 уровень
Помогите разобраться почему не работает метод такой провверки
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергей Ильин президент
23 февраля 2022, 09:59
так если что получился перевод из 2ичной в 16чную
0
Сергей Ильин президент
23 февраля 2022, 09:58
public static String toHex(String binaryNumber) {
String hexNumber = "";
int decimalNumber = 0;
int number;
if (binaryNumber == null) return ""; // проверим что в строке не нуль
for (int i = 0; i < binaryNumber.length(); i++) { //проверим на то что все цифры равны 1 и 0
if ((binaryNumber.charAt(i) != '0') && (binaryNumber.charAt(i) != '1')) return "";
}
for (int i = 0; i < binaryNumber.length(); i++) { // переводим сначала в десятичную
if (binaryNumber.charAt(binaryNumber.length() - 1 - i) == '1') {
number = 1;
} else {
number = 0;
}
decimalNumber = decimalNumber + number * (int) Math.pow(2, i);
}
while (decimalNumber > 0) { // переведем в 16ричную
hexNumber = HEX.charAt(decimalNumber % 16) + hexNumber;
decimalNumber = decimalNumber / 16;
}
return hexNumber;
}
0
Сергей Ильин президент
23 февраля 2022, 09:54
ну крч уже рзобрался))
0
Денис Enterprise Java Developer
23 февраля 2022, 09:51
Я стесняюсь спросить, а binaryNumber это наверное строка, да?
Есть мнение, что 0 и '0' это разные вещи. Посмотрите в таблице ASCII символов, какой именно символ имеет код 0 и какой код у символа '0'
Аналогично с единицей собственно.
0
Сергей Ильин президент
23 февраля 2022, 10:00
да, потом понял что чар ведь строковое сравнение надо
0
Сергей Ильин президент
23 февраля 2022, 09:49
??
0
Сергей Ильин президент
23 февраля 2022, 09:49
for (int i = 0; i < binaryNumber.length(); i++) {
int x = binaryNumber.charAt(i); //проверим на то что все цифры равны 1 и 0
}
if ((x != 0) && (x != 1)) {
return "";}
может так переписать
0