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

При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном коде возникающаяединица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

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

Примеры решения задач

Сложить X и Y в обратном и дополнительном кодах:

а) X=111, Y=–11;

X= 111

Y=– 11

X+Y= 100

Прямой код Сложение в обратном Сложение чисел в обратном и дополнительном кодах коде Сложение в дополнительном коде
Xпр=0,0000111 Yпр=1,0000011 Xобр=0,0000111 Yобр=1,1111100 1 0,0000011 +1 (X+Y)обр=0,0000100 Xдоп=0,0000111 Yдоп=1,1111101 1 0,0000100 (X+Y)доп=0,0000100

Так как результат сложения содержит код положительного числа (знак 0), то (X+Y)обр=(X+Y)доп=(X+Y)пр.

б) X= –101,Y= –110;

X=– 101

Y=– 110

X+Y=–1011

Прямой код Сложение в обратном коде Сложение в дополнительном коде
Xпр=1,0000101 Yпр=1,0000110 Xобр=1,1111010 Yобр=1,1111001 1 1,1110011 +1 (X+Y)обр=1,1110100 Xдоп=1,1111011 Yдоп=1,1111010 1 1,1110101 (X+Y)доп=1,1110101

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

(X+Y)обр=1,1110100 (X+Y)пр=1,0001011;

(X+Y)доп=1,1110101 (X+Y)пр=1,0001010+0,0000001=1,0001011.

Таким образом, X+Y = –1011 и полученные результаты совпадают Сложение чисел в обратном и дополнительном кодах с обычной записью.

Модифицированные обратный и дополнительный коды

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

Вмодифицированном обратном коде под знак числа отводится не один, а два разряда. Соответственно знаковые разряды будут 00 – для положительных чисел и 11 – для отрицательных чисел.

Любая другая комбинация («01» или «10»), получившаяся в знаковых разрядах в ходе арифметических операций служит признаком переполнения разрядной сетки. Сложение чисел в модифицированном обратном коде ничем не отличается от сложения в обычном обратном коде.

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



documentabhfkfx.html
documentabhfrqf.html
documentabhfzan.html
documentabhggkv.html
documentabhgnvd.html
Документ Сложение чисел в обратном и дополнительном кодах