При решении определенного класса задач иногда удобно записывать числовые значения в разных системах счисления. Разработан ряд единых правил преобразования чисел между системами. Как осуществляется перевод систем счисления, описано в статье.

Что такое перевод систем счисления

Основой системы счисления является величина, определяющая количество знаков для записи числового значения. Например, основанием двоичной системы является число 2, а основанием пятерной системы – 5.

Перевод систем счисления

Рис. 1. Таблица: основание и алфавит для разных систем счисления.

Десятичное число 15 при преобразовании в десятичное равно 30, но в восьмеричном оно равно 17. Шестнадцатеричным эквивалентом пятнадцати является буква F. Как это происходит?

Перевод систем счисления

Рис. 2. Таблица соответствия десятичных и шестнадцатеричных чисел.

Перевод чисел с участием десятичной системы счисления

При переводе чисел в десятичную систему принимаются три строгих правила перевода.

1. Преобразование числового значения из десятичного формата в эквивалент другой системы счисления заключается в делении целой части и полученных частных на значение основного числа будущей системы счисления. В этом случае остатки от деления записываются от последнего.

Например, 15 из десятичной системы в восьмеричную переводится так: 15/8=1 (остаток 7). Записываем сумму, начиная с конечного и в данном случае единственного частного, а затем остальные. Получаем 17.

Другой пример: десятичное число 125 в восьмеричной системе: 125/8 = 15 (5). Полученное частное больше восьмеричного.

Продолжаем делить: 15/8=1(7). Ответ пишется от последнего частного, а затем остатка от деления: 175.

Следует запомнить, что запись результата всегда начинает с последнего частного и остатков от деления в обратном порядке.

2. Преобразование части десятичного числа, записанной после запятой, осуществляется с помощью обратной процедуры, то есть умножения, вычисления друг за другом произведений дробных частей исходя из будущей системы счисления и последовательной записи чисел получается в целой части. Например, дробь числа 0,134 переводится в двоичную систему следующим образом (удобнее это делать столбиком):

0,134 * 2 = 0,268 (целая часть 0)

0,268 * 2 = 0,536 (0)

0,536 * 2 = 1,072 (слева от десятичной точки 1)

0,072 * 2 = 0,144 (целая часть 0)

0,144 * 2 = 0,288 (0)

Произведения рассчитываются до тех пор, пока не будет достигнута заданная точность или остаток не станет нулевым.

Ответ: Десятичное значение 0,134 в двоичном формате равно 0,00100.

При умножении следует брать только остатки, не учитывая полученную цифру в целой части.

3. Преобразование чисел из разных систем счисления в десятичные удобнее всего представлять, используя расширенную запись числа, или используя полиномиальную формулу, которая образуется путем сложения монома, возведенного в степень и умноженного на некоторые коэффициенты:

a1 * x^(n-1) + a2 * x^(n-2) + a3 * x^(n-3) + …+an * x^0

Например, 137 = 1 * 10^2 + 3 * 10^1 + 7 * 10^0.

Давайте рассмотрим примеры перевода чисел:

2 → 10: 11011 = 1 * 2^4 + 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 27

8 → 10: 134 = 1 * 8^2 + 3 * 8^1 + 4 * 8^0 = 92

16 → 10: 1AF = 1 * 16^2 + 10 * 16^1 + 15 * 16^0 = 431

Перевод чисел в системах счислении, построенных на бинарном основании

Восьмеричная и шестнадцатеричная системы счисления построены на двоичной основе. Основанием восьмеричной системы является число 8, то есть 2^3, а основой шестнадцатеричной системы — 16 = 2^4. Преобразование между этими системами в двоичную систему удобнее всего производить с помощью таблицы преобразования систем счисления:

Перевод систем счисления

Рис. 3. Таблица соответствия чисел в 2-, 8- и 16-й системе счисления.

Каждое восьмеричное число представлено триадой (три элемента) двоичных символов, каждое шестнадцатеричное число — двоичной тетрадой (четыре элемента).

Например, 8 → 2: 134 ⇔ 001011100

16 → 2: 8F ⇔ 10001111

2 → 8: 110101 ⇔ 65

2 → 16: 11011000 ⇔ D8

Что мы узнали?

Переход между разными системами счисления осуществляется по строго определенным правилам. Десятичные числа преобразуются в другие системы путем последовательного деления целой части и умножения дробной части; обратное преобразование выполняется с использованием полинома. Перенос между 2, 8 и 16 системами осуществляется согласно таблице.