@AlexMark

Как приводится шестнадцатеричное к десятичному в этом примере?

public class Hex2Decimal {

    public static int hex2decimal(String s) {
        String digits = "0123456789ABCDEF";
        s = s.toUpperCase();
        int val = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            int d = digits.indexOf(c);
            val = 16*val + d;
        }
        return val;
    }

Я не понимаю, как в данном примере переводится число.
То-есть, не понимаю последнего шага... Из строки мы берем символ, потом вычисляем его индекс, соответственно изменяем буквы из 16-системы в числа, а потом... Как потом ? Все работает правильно, я проверял (компилировал), но если на бумажке сижу и считаю, вообще не выходит у меня, как программа приходит к верному решению... Может кто немножко пошагово разложить как верно работает посл. строка при вычислении val переменной.
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@zzzevaka
Может так будет понятнее:
FE=(16*0+15)*16+14=254
123=((16*0+1)*16+2)*16+3=291
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы