Основы современных компьютерных технологий

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


Для хранения чисел и выполнения различных операций над ними их представляют различными кодами: прямым, обратным и дополнительным. Как уже отмечалось выше, для представления чисел со знаками в памяти ЭВМ используют прямой код. Для обозначения прямого кода числа X. , используется запись вида [Х](q)]пр .

Правило представления q-ичного кода числа в прямом коде имеет вид:

[X(q)]пр= { 0 xn-1xn-2...x1x0x-1...x-m, если X ?0
1 xn-1xn-2...x1x0, x-1... x-m, если X< 0,

где х i- значение цифры в i-м разряде исходного кода.

Здесь старший бит несет информацию о знаке числа. Если он принимает значение 0, то знак числа "+" ; если значение 1 - то знак числа "-". Например, для двоичного кода



х(2)=+11011001 [Х(2)]ир= 0.11011001;
х(2) = -01101001 [X(2)]ир= 1.01101001.

При представлении чисел в прямом коде реализация арифметических операций в ЭВМ должна предусматривать различные действия с модулями чисел в зависимости от их знаков. Так, сложение в прямом коде чисел с одинаковыми знаками выполняется достаточно просто. Числа складываются и сумме присваивается код знака слагаемых. Значительно более сложной является операция алгебраического сложения в прямом коде чисел с различными знаками. В этом случае приходится определять большее по модулю число, производить вычитание чисел и присваивать разности знак большего по модулю числа. Для упрощения выполнения операций алгебраического сложения в ЭВМ используются специальные коды, позволяющие свести эту операцию к операции арифметического сложения. В качестве специальных в ЭВМ применяются обратный и дополнительный коды. Они образуются из прямых кодов чисел, причем специальный код положительного числа равен его прямому коду.

Для обозначения обратного кода числа X(q) используется запись вида [X(q) ] обр .

Правило представления q-ичного кода числа в обратном коде имеет вид:

[X(q)]обр= { 0 xn-1xn-2...x1x0x-1...x-m, если X ?0
1 xn-1xn-2...x1x0, x-1... x-m, если X< 0,

Здесь инверсия цифры хi, определяемая из соотношения:


где: q - основание системы счисления;

хi - значение цифры в i-ом разряде исходного кода.

Для двоичной системы счисления, если хi = 1, то хi= 0 и наоборот. Отсюда можно сформулировать частное правило образования обратного кода для отрицательных двоичных чисел.

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

32

Например:

Х(2)= + 11011001, [х(2)]пр= 0.11011001, [X(2)]обр=0.11011001.
х(2)=-01011101, [Х(2)]пр= 1.01011101, [Х(2)]обр = 1.10100010.
Для обозначения дополнительного кода числа Х(q) используется запись вида [X(q)] доп. Правило представления q-ичного кода числа в дополнительном коде имеет вид

[X(q)]обр= { 0 xn-1xn-2...x1x0x-1...x-m, если X ?0
1 xn-1xn-2...x1x0, x-1... x-m+q-m, если X< 0,
Таким образом, для преобразования прямою кода q-ичного отрицательного числа в дополнительный необходимо образовать его в обратный код и в младший разряд добавить единицу. Например, для двоичных чисел:

х(2)=+11011001, [Х(2)]пр= 0.11011001, [Х(2)]доп= 0.11011001.
х(2) = -01011101, [Х(2)] пр = 1.01011101, [Х(2)] доп = 1.10100011.
При выполнении операции сложения чисел, представленных специальными д-пч-пыми кодами знаковые разряды участвуют в операции наряду с цифровыми разрядами. При этом цифровые разряды слагаемых складываются как модули чисел но правилам q-ичиой арифметики. Знаковые разряды и цифры переноса из старшего цифрового разряда при любом основании системы счисления (q>2) складываются как одноразрядные двоичные коды. Если при этом формируется перенос из знакового разряда, то он имеет вес единицы младшего разряда q~m при использовании обратного кода и должен быть добавлен в младший разряд результата. При использовании дополнительного кода единица переноса из знакового разряда не принимается во внимание, т. с. отбрасывается.

Например:

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

Результат сложения специальных кодов чисел при переполнении разрядной сетки является неверным.

33

22 :: 23 :: 24 :: 25 :: 26 :: 27 :: 28 :: 29 :: 30 :: 31 :: 32 :: 33 :: Содержание


Содержание раздела