Смешанные системы счисления

В ряде случаев числа, заданные в системе счисления с некоторым основа-

нием р приходится изображать с помощью цифр другой системы счисления, с основанием 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

Преобразование чисел из десятичного представления в двоично-

десятичное происходит автоматически либо на этапе подготовки данных, либо

на этапе ввода информации в память.

В современных машинах помимо операций над двоичными числами име-

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

ную, то они осуществляются автоматически устройствами вывода.