Алгебраическое сложение чисел в дополнительном коде

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

При условии, что слагаемые по модулю меньше единицы: Алгебраическое сложение чисел в дополнительном коде - student2.ru и их сумма по модулю также меньше единицы: Алгебраическое сложение чисел в дополнительном коде - student2.ru , сложение чисел в дополнительном (модифицированном дополнительном) коде дает сумму в дополнительном (модифицированном дополнительном) коде.

Пример.

Пусть требуется найти сумму двух чисел Алгебраическое сложение чисел в дополнительном коде - student2.ru и Алгебраическое сложение чисел в дополнительном коде - student2.ru в дополнительном коде, если выполняются оговоренные выше условия и при этом Алгебраическое сложение чисел в дополнительном коде - student2.ru .

X = – 0,101001 [X]qon = 1,010111

+ Y = – 0,001101 + [Y]qon = 1,110011

Алгебраическое сложение чисел в дополнительном коде - student2.ru X+Y = – 0,110110 [X+Y]qon = 11,001010

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru не учитывается

[X+Y]np= 1,110110 [X+Y]np = 1,110110

Пусть X > 0; Y < 0; (X+Y) > 0. Найти сумму в дополнительном коде.

X = + 0,110110 [X]qon = 0,110110

Y = − 0,010010[Y]qon = 1,101110

Алгебраическое сложение чисел в дополнительном коде - student2.ru X + Y = + 0,100100 [X+Y]qon = 10,100100

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru не учитывается

[X+Y]np = 0,100100 [X+Y]np = 0,100100

Алгебраическое сложение чисел в обратном коде

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

При выполнении условия, что слагаемые Алгебраическое сложение чисел в дополнительном коде - student2.ru и их сумма Алгебраическое сложение чисел в дополнительном коде - student2.ru - сложение чисел в обратном (модифицированном обратном) коде дает сумму в обратном (модифицированном обратном) коде.

Пример.

Пусть требуется найти сумму двух чисел Алгебраическое сложение чисел в дополнительном коде - student2.ru и Алгебраическое сложение чисел в дополнительном коде - student2.ru в обратном коде, при оговоренных выше условиях и при этом Алгебраическое сложение чисел в дополнительном коде - student2.ru .

X = – 0,110001 [X]ob = 1,001110

+ Y = – 0,001001 + [Y]ob = 1,110110

+
Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru X+Y= − 0,111010 11,000100

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru [X+Y]np= 1,110110 1

[X+Y]ob = 1,000101

[X+Y]np = 1,111010

Пусть X > 0; Y < 0; (X+Y) > 0. Найти сумму в дополнительном коде.

X = + 0,111001 [X]ob = 0,111001

Y = − 0,010101 [Y]ob = 1,101110

+
Алгебраическое сложение чисел в дополнительном коде - student2.ru X + Y = + 0,100100 10,100011

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru [X+Y]np = 0,100100 1

[X+Y]ob = 0,100100

[X+Y]np = 0,100100

Переполнение разрядной сетки при сложении чисел

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

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

Пример.

Пусть Алгебраическое сложение чисел в дополнительном коде - student2.ru , а Алгебраическое сложение чисел в дополнительном коде - student2.ru . Произведем сложение в обратном коде.

X = – 0,110010 [X]ob = 1,001101

+ Y = – 0,011111 + [Y]ob = 1,100000

+
Алгебраическое сложение чисел в дополнительном коде - student2.ru X+Y=– 1,010001 10,101101

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru [X+Y]>1 1

0,101110

Прямого кода для такой В результате сложения обратных кодов

суммы не существует. отрицательных чисел получен код по-

ложительного числа. Это говорит о не-

правильности результата, т.е. о пере-

полнении разрядной сетки.

Признаком переполнения разрядной сетки при сложении чисел в модифицированном обратном или в модифицированном дополнительном коде является образование различных цифр в знаковых разрядах суммы: 01 вместо 00 при сложении двух положительных правильных дробей или 10 вместо 11 при сложении двух отрицательных правильных дробей.

Пример.

Пусть Алгебраическое сложение чисел в дополнительном коде - student2.ru , а Алгебраическое сложение чисел в дополнительном коде - student2.ru . Произведем сложение в модифицированном дополнительном коде.

X = – 0,111001 [X] Алгебраическое сложение чисел в дополнительном коде - student2.ru = 11,000111

Алгебраическое сложение чисел в дополнительном коде - student2.ru + Y = – 0,110100 + [Y] Алгебраическое сложение чисел в дополнительном коде - student2.ru = 1,100000

Алгебраическое сложение чисел в дополнительном коде - student2.ru X+Y=– 1,101101 1 10,010011

Алгебраическое сложение чисел в дополнительном коде - student2.ru Алгебраическое сложение чисел в дополнительном коде - student2.ru [X+Y]>1 не учитывается

10,010011

Модифицированного В результате сложения модифицированных

дополнительного кода дополнительных кодов двух отрицательных

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

не существует разрядах разные цифры. Это говорит о не-

правильности результата, т.е. о переполнении разрядной сетки.

Наши рекомендации