decimalNumber = 16 * decimalNumber + HEX.indexOf(hexNumber.charAt(i));
indexOf требует ведь аргумент типа String, а charAt возвращает char.
Строчку взял из правильного решения, сам char переводил в String
Rustkh
15 уровень
Поясните, пожалуйста, почему этот код работает
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Погонин
4 декабря 2022, 21:08
indexOf возвращает номер элемента в строке если это char и начало строки если это строка. В этом случае мы переводим из 16-ричной системы счисления в 10-чную. Так как цифр всего 10, остальные 6 "цифр" записаны буквами. У нас есть строка для перевода, с именем "HEX". Мы определяем на каком месте в ней стоит определенный символ, тем самым переводим: а в 11, b в 12, c в 13 и так далее. Это нужно для того что бы было возможным выполнить сложение.
0
Rustkh
4 декабря 2022, 21:44
По алгоритму вопросов нет. Вопрос в другом.Метод charAt возвращает значение типа char,а метод indexOf требует аргумент типа String. Однако данная конструкция приведена как правильное решение
0
Алексей Погонин
5 декабря 2022, 17:03
charAt так же принимает и чары.
0