Дополнительный код.


Кодирование чисел в дополнительном коде можно получить естественным путем при помощи операции вычитания (моделирования работы вычитающего счетчика). Для начала рассмотрим дополнительный код для десятичной системы счисления. За начальное состояние возьмем значение счетчика – 4, разрядность счетчика – 3:

Начальное состояние счетчика: 0 003 положительное число 3

после вычитания 1 0 002 положительное число 2

после вычитания 1 0 001 положительное число 1

после вычитания 1 0 000 нулевое значение счетчика

после вычитания 1 9 999 отрицательное число – минус 1; это и следующие значения рассматриваются как коды отрицательных чисел

после вычитания 1 9 998 отрицательное число – минус 2

после вычитания 1 9 997 отрицательное число – минус 3

и т.д.

Положительные числа от отрицательных отличаются значением старшего разряда. Если он равен 9. то число отрицательное, иначе – положительное.

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

А = В – С. где: В = 0 005, С = 0 003

Заменяем действие вычитание положительного числа на сложение с отрицательным числом: А = В + ( – С). Здесь по коду положительной величины С (0 003) находится код отрицательной величины ( – С = 9 997) и производится действие сложение:

0 005

+ 9 997

1½0 002

Единица переноса из старшего разряда (отделена вертикальной чертой) в данном случае просто отбрасывается.

Определение кода отрицательной величины по коду положительной величины (операция инверсии знака) производится по правилу: каждую цифру (включая знак) меняют на дополнение до 9: (0® 9), (1®8), (2®7)….(9 ®0) и полученный результат увеличивают на 1.

В десятичной системе счисления дополнительный код не симметричен по отношению к множествам положительных и отрицательных чисел, записываемых в регистр.

Двоичный дополнительный код более симметричен по отношению к множествам положительных и отрицательных чисел (отрицательных чисел записывается больше только на одно число).

Определение кода отрицательной величины по коду положительной величины (приписывание отрицательного знака) производится по правилу: каждую цифру числа (включая знак) меняют на противоположную (ноль на единицу, а единицу на ноль) и полученный результат увеличивают на 1.

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

Пример. Числа: А = 5(10)= 0.0101(2) и В = (–5(10))= 1.1011(2) являются дополнительными, т.к. их сумма равна нулю (перенос из старшего разряда отбрасывается):

0.0101

+ 1.1011

1| 0.0000.

 

Они содержат значащие цифры и знак (в примере знак отделен точкой).

Имеется и другая интерпретация дополнительного кода. Знаковый разряд рассматривается как обычный цифровой, но с отрицательным весом. У положительных чисел значение этого разряда равно нулю, а у отрицательного – минус единица в соответствующей (положительной) степени.

Так как 2n > , число всегда отрицательно, если его старшая (знаковая) цифра равна 1.

Подсчет значения чисел для предыдущего примера производится следующим образом:

А = 0.0101 = 100(2) + 1(2) = 4(10) + 1(10) = 5(10)

В = 1.1011 = (– 10000(2)) + 1000(2) + 10(2) +1(2) = (– 16(10)) +8(10)+2(10)+1(10) = (– 5(10)).

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



Дата добавления: 2022-02-05; просмотров: 306;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.