2. Перевод чисел из одной системы счисления в другую
Рассмотрим способы перевода чисел из одной системы счисления в другую.
а) Перевод двоичного числа в десятичное.
Необходимо сложить двойки в степенях, соответствующих позициям, где в двоичном стоят единицы. Например:
Возьмем число 20. В двоичной системе оно имеет следующий вид: 10100.
Итак (считаем слева направо, считая от 4 до 0; число в нулевой степени всегда равно единице)
10100 = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = 20
16+0+4+0+0 = 20.
б) Перевод десятичного числа в двоичное.
Необходимо делить его на два, записывая остаток справа налево:
20/2 = 10, остаток 0
10/2=5, остаток 0
5/2=2, остаток 1
2/2=1, остаток 0
1/2=0, остаток 1
В результате получаем: 10100 = 20
в) Перевод шестнадцатеричного числа в десятичное.
В шестнадцатеричной системе номер позиции цифры в числе соответствует степени, в которую надо возвести число 16:
8A = 8*16 + 10 (0A) = 138
Напоследок приведем алгоритм перевода в двоичную и из двоичной системы, предлагаемый Л. Радюком.
Пусть А(цд) – целое десятичное число. Запишем его в виде суммы степеней основания 2 с двоичными коэффициентами. В его записи в развёрнутой форме будут отсутствовать отрицательные степени основания (числа 2):
A(цд) = a(n–1) • 2^(n–1) + a(n–2) • 2^(n–2) + … + a(1) • 2^1 + a(0) • 2^0.
На первом шаге разделим число А(цд) на основание двоичной системы, то есть на 2. Частное от деления будет равно:
a(n–1) • 2^(n–2) + a(n–2) • 2^(n–3) + … + a(1), а остаток равен a(0).
На втором шаге целое частное опять разделим на 2, остаток от деления будет теперь равен a(1).
Если продолжать этот процесс деления, то после n-го шага получим последовательность остатков:
a(0), a(1),…, a(n–1).
Легко заметить, что их последовательность совпадает с обратной последовательностью цифр целого двоичного числа, записанного в свёрнутой форме:
A(2) = a(n–1)…a(1)a(0).
Таким образом, достаточно записать остатки в обратной последовательности, чтобы получить искомое двоичное число.
Тогда сам алгоритм будет следующим:
1. Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на основание системы (на 2) до тех пор, пока не получится частное, меньшее делителя, то есть меньше 2.
2. Записать полученные остатки в обратной последовательности, а слева добавить последнее частное.
Для перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную необходимо цифры числа преобразовать в группы двоичных цифр. Для перевода из восьмеричной системы в двоичную каждую цифру числа надо преобразовать в группу из трёх двоичных цифр - триаду, а при преобразовании шестнадцатеричного числа - в группу из четырёх цифр - тетраду.
Подводя итоги работы, можно сделать следующие выводы.
1. Фринланд А.Я. Информатика. – М., 2005.
2. Сидоров В.К. Системы счисления.// Наука и жизнь 2000. №2.
3. Радюк Л. Алгоритм перевода в двоичную и из двоичной системы счисления.// Наука и жизнь. 2005. №1.