Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций для студентов направления 230100 ту...doc
Скачиваний:
23
Добавлен:
01.04.2025
Размер:
7.52 Mб
Скачать

9.6. Выполнение арифметических операций с числами с фиксированной и плавающей запятой

9.6.1Коды: прямой, обратный, дополнительный,

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

Прямой код числа A = – 0, a1 a2 ... an – машинное изображение этого числа в виде [A]пр = 1, a1 a2 ... an.

Из определения следует, что в прямом коде все цифровые разряды остаются неизменными, а в знаковой части записывается единица. Например, если A = – 0,101110, то [A]пр = 1,101110.

Положительное число в прямом коде не меняет своего изображения. Например, если A = 0,110101, то [A]пр = 0,110101.

Дополнительный код числа – машинное изображение этого числа [A]д = 1, ā1 ā2 ... ān, для которого: āi = 0, если ai = 1, и āi = 1, если ai = 0, за исключением последнего значащего разряда, для которого āk = 1 при ak = 1.

Например, число A = – 0,101110 запишется в дополнительном коде так: [A]д = 1,010010.

Дополнительный код является математическим дополнением до основания системы счисления:

| A | + [A]д = q,

где | A | – абсолютное значение числа A.

Обратный код числа A = – 0, a1 a2 ... an – такое машинное изображение этого числа [A]об = 1, å1 å 2 ... ån, для которого åi = 0, если ai = 1, и åi = 1, если ai = 0.

Из определения следует, что обратный код двоичного числа является инверсным изображением самого числа, в котором все разряды исходного числа принимают инверсное (обратное) значение, т. е. все нули заменяются на единицы, а все единицы – на нули, например если A = – 0,101110, то [A]об = 1,010001.

Следовательно, для обратного кода чисел, представленных в форме с запятой, фиксированной перед старшим разрядом, справедливо соотношение:

| A | + [A]об = qq-n,

где | A | – абсолютная величина числа A; n – количество разрядов после запятой в изображении числа.

9.6.2Операция сложения

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

Двоичный сумматор прямого кода (ДСПК) – сумматор, в котором отсутствует цепь поразрядного переноса между старшим цифровым и знаковым разрядами, поэтому на ДСПК складываются числа, имеющие одинаковые знаки; сумма чисел имеет знак любого из слагаемых.

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

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

При сложении чисел одинакового знака, представленных в формате с фиксированной запятой, может возникнуть переполнение разрядной сетки. Признаком переполнения разрядной сетки ДСПК является появление единицы переноса из старшего разряда цифровой части числа. Признаком переполнения разрядной сетки ДСДК и ДСОК является знак результата, противоположный знаку операндов.