Смешанные системы счисления
В ряде случаев числа, заданные в системе счисления с некоторым основа-
нием р приходится изображать с помощью цифр другой системы счисления, с основанием q, где q<p. Такая система возникает, например, когда в машине, способной непосредственно воспринимать только двоичные числа, необходимо изобразить десятичное число. В этих случаях используют смешанные системы счисления, в которых каждый коэффициент р-ичного разложения числа запи- сывается в q-ичной системе. В такой системе р называется старшим основани- ем, q - младшим, а сама система - *-р-ичной. Для того, чтобы запись числа в смешанной системе была однозначной, для представления любой р-ичной циф- ры отводится одно и то же количество q-ичных разрядов, достаточное для пред-
ставления любого числа в р-ичной системе. Наиболее часто встречается двоич-
но-десятичная система.
Для того чтобы машина могла переводить числа из десятичной системы
счисления в двоичную и обратно, она должна уметь хранить десятичные числа. Так как память машины ничего, кроме нулей и единиц, хранить не может, для
этой цели используется промежуточная двоично-десятичная система счисления.
В двоично-десятичной системе каждая цифра десятичного числа записыва-
ется в двоичной системе счисления. Очевидно, что различные десятичные циф- ры требуют для своего двоичного написания различного количества двоичных
разрядов: от одного - для * и 1 до четырех - для 8 и 9.
Чтобы не применять разделительных знаков, для двоичного изображения
десятичной цифры принято всегда выделять четыре двоичных разряда. Такая группа из четырех двоичных разрядов, предназначенная для изображения од- ной десятичной цифры, называется тетрадой. Для перевода числа из десятичной системы в двоично-десятичную достаточно каждую десятичную цифру заме-
нить ее четырехразрядным эквивалентом (тетрадой) по следующему правилу:
Десятичные цифры * 1 2 3 4 5 6 7 8 9
Их двоичные коды
(тетрады)
0*00 0001 00*0 0011 0100 010* 01*0 0111 1000 *001
Десятичное число требует для своего изображения в двоично-десятичной
системе столько тетрад, каково количество десятичных разрядов числа.
Например, число 92* требует три тетрады: 100* 0*10 01*1.
Из возможных шестнадцати различных тетрад 0000, 0001,…, 1110,
111* в двоично-десятичной системе счисления используются только де- сять. Остальные тетрады не означают никакой десятичной цифры и не имеют смысла в двоично-десятичной системе счисления. По этой причине арифметические операции в двоично-десятичной системе счисления за-
труднительны.
Следует обратить внимание, что, хотя в двоично-десятичной системе и ис-
пользуется только 0 и 1, число в двоично-десятичной системе отличается от
двоичного его изображения.
Например, приведенное выше двоично-десятичное число в двоичной сис-
теме изображает число 2*41, а не 925.
Обратный переход от двоично-десятичной системы счисления к десятич-
ной также достаточно прост. Для того чтобы его осуществить, необходимо дво- ично-десятичные числа влево и вправо от запятой разбить на тетрады, а затем
каждую тетраду заменить отвечающей ей десятичной цифрой.
Например, двоично-десятичное число 0110 1000 1001, 0100 0111 в деся-
тичной системе запишется как: *89,47.
Как уже говорилось, в ЭВМ числа хранятся обычно в двоичной системе
счисления. Однако исходные данные для обработки на машине всегда пред- ставляются в десятичной системе счисления. Двоично-десятичная система и
служит для записи десятичных чисел в машине, облегчая переход от десятич- ной системы к двоичной. При вводе исходных данных в машину десятичные
числа предварительно с помощью специальных устройств преобразуются в дво- ично-десятичные. Затем по программе самой машиной двоично-десятичные числа переводятся в двоичные. После окончания вычислений ЭВМ автоматиче- ски по программе переводит результат вычислений в двоично-десятичную сис- тему. С помощью специальных устройств осуществляется окончательная выда-
ча на печать результата в десятичной системе. Схематически это выглядит так:
10с/с ® 2-10с/с ® 2с/с ® Обработка ® 2с/с ® 2-10с/с ® 1*c/c
Преобразование чисел из десятичного представления в двоично-
десятичное происходит автоматически либо на этапе подготовки данных, либо
на этапе ввода информации в память.
В современных машинах помимо операций над двоичными числами име-
ется также возможность производить арифметические операции непосредст- венно над двоично-десятичными числами. Правда, производятся такие опера- ции несколько медленнее, чем над двоичными числами. Что касается преобра- зования результатов вычислений из двоично-десятичной системы в десятич-
ную, то они осуществляются автоматически устройствами вывода.