Компьютерных систем счисления всего три – 2, 8 и 16, и для них есть быстрые приёмы вроде группировки битов. Но основание может быть любым: 5, 12, 36. Древние вавилоняне считали в системе с основанием 60, и следы этого до сих пор в наших часах.
Хочется универсального способа – одного метода на все основания сразу, без отдельного приёма под каждое.
В этом уроке: метод развёрнутой формы – как перевести число из системы с любым основанием в десятичную, что делать, если среди цифр попалась буква, и какую ошибку в нумерации разрядов допускают чаще всего.
Метод развёрнутой формы
Развёрнутая форма – это запись числа суммой произведений его цифр на веса разрядов:
где $a_i$ – цифры числа, b – основание исходной системы, а цифры считаются справа налево начиная с разряда 0. Отсюда – метод перевода в десятичную систему, три шага:
Пронумеровать разряды числа справа налево, начиная с 0.
Для каждого разряда умножить его цифру на b в степени номера разряда.
Сложить все полученные произведения – сумма и есть искомое десятичное число.
Работает это потому, что складывать и умножать мы умеем только в десятичной системе – а формула как раз и превращает чужую запись в привычную арифметику.
Пример: система с основанием 5
Переведём число $342_5$ в десятичную систему. Разряды справа налево: 2 (разряд 0), 4 (разряд 1), 3 (разряд 2). Веса разрядов – степени пятёрки: $5^0 = 1$, $5^1 = 5$, $5^2 = 25$.
Проверка на здравый смысл: в системе с основанием 5 трёхзначное число не может быть больше $444_5 = 124$, и наш ответ 97 в этот предел укладывается. Такая прикидка ловит грубые ошибки в вычислениях.
Развёрнутая форма числа $342_5$: под каждой цифрой – разряд и вес (степень пятёрки), справа – сумма произведений.
Особый случай: цифра больше 9
В системе счисления с основанием 12 (двенадцатеричной) привычных десяти цифр не хватает – нужны ещё две, для значений 10 и 11. Как и в шестнадцатеричной системе, для них используют буквы: A = 10, B = 11.
Переведём число $2A5_{12}$. Прежде чем считать, переводим букву в числовое значение: A = 10. Дальше – тот же самый метод:
Буквенная цифра – не исключение из метода, а просто способ записать одним символом значение больше 9. Главное – не начать умножать «на A»: в формулу подставляется числовое значение цифры, а не её символ.
Ниже – тренажёр на 3 разряда. Кнопками ▲/▼ над и под цифрой меняйте значение каждого разряда (по кругу – от 0 до основания минус один, и обратно), а отдельным полем – само основание, от 2 до 36 (после 9 в ход идут буквы A, B, C… – как A в примере выше). Под числом – его развёрнутая форма: разложение по степеням основания и сумма произведений, которая и есть десятичное значение числа.
Типичная ошибка
Самая частая ошибка – пронумеровать разряды не с той стороны. Разряды считают справа налево, начиная с нуля, а читаем мы слева направо, и рука сама тянется присвоить нулевой номер первой увиденной цифре.
Посмотрим, чем это кончается для того же числа $342_5$. Правильно: $3 \cdot 5^2 + 4 \cdot 5^1 + 2 \cdot 5^0 = 97$. Если же пронумеровать слева направо, получится $3 \cdot 5^0 + 4 \cdot 5^1 + 2 \cdot 5^2 = 3 + 20 + 50 = 73$ – другое число, причём выглядящее вполне правдоподобно, так что ошибку легко не заметить.
Мнемоника простая: самая правая цифра – всегда единицы, её вес равен $b^0 = 1$ при любом основании. Дальше веса растут влево.
Коротко
Метод развёрнутой формы переводит число из системы с любым основанием в десятичную: $a_0 \cdot b^0 + a_1 \cdot b^1 + \dots$
Разряды нумеруются справа налево, с нуля; вес самого правого разряда равен 1 при любом основании.
Порядок действий: пронумеровать разряды → умножить каждую цифру на основание в степени её разряда → сложить.
Буквенная цифра сначала заменяется числовым значением (A = 10, B = 11, …), и только потом подставляется в формулу.
Прикидка сверху ловит грубые ошибки: трёхзначное число в системе с основанием b не превышает $(b-1) \cdot b^2 + (b-1) \cdot b + (b-1)$.
Проверь себя
Короткие вопросы по теме урока. Попыток сколько угодно, на прохождение блока они не влияют – это проверка для себя.