Сложение чисел в обратном и дополнительном коде
Правило 1. При сложении чисел в обратном коде знаковые разряды складываются аналогично остальным, перенос из знакового разряда прибавляется к младшему разряду результата (так называемый циклический перенос), результат получается в обратном коде.
Правило 2. При сложении дополнительных кодов чисел знаковые разряды складываются аналогично остальным, перенос из знакового разряда теряется, результат получается в дополнительном коде.
Таким образом, применение обратного и дополнительного кода упрощает алгебраическое сложение. Сложение чисел с разными знаками заменяется сложением их соответствующих кодов, знак при этом получается автоматически.
Правило 3. Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах кроме знакового на противоположные. Дополнительный код преобразуется в прямой также, как и обратный, с последующим прибавлением единицы к младшему разряду.
Примеры.
2. Сложить двоичные числа X и Y в обратном и дополнительном кодах.
X= 1112, Y= -112;
а) Сложим числа, пользуясь правилами двоичной арифметики:
X= Y= |
11 | |
X+Y= | 100 |
б) Сложим числа, используя коды (таблица 8):
Таблица 8
Прямой код | Сложение в обратном коде | Сложение в дополнительном коде | ||||||||||||||||||||||
Xпр =0’0000111 Yпр =0’0000011 |
|
|
Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр=(X+Y)доп=(X+Y)пр.
3. Сложить двоичные числа X и Y в обратном и дополнительном кодах
X= -1012, Y= -1102;
а) Сложим числа, пользуясь правилами двоичной арифметики:
X= Y= | -101 -110 |
X+Y= | -1011 |
б) Сложим числа, используя коды (таблица 9):
Таблица 9
Прямой код | Сложение в обратном коде | Сложение в дополнительном коде | ||||||||||||||||||||
Xпр =1’0000101 Yпр =1’0000110 |
|
|
Так как сумма является кодом отрицательного числа (знак 1 в знаковом разряде), то необходимо перевести результаты в прямой код:
- из обратного кода:
(X+Y)обр=1,1110100 (X+Y)пр=1,0001011;
- из дополнительного кода:
(X+Y)доп=1,1110101 (X+Y)пр=1,0001010+0,0000001=1,0001011.
Таким образом, X+Y= -1011 и полученный результат совпадает с обычной записью.
3. Сложить двоичные числа X и Y в обратном и дополнительном кодах
|
|
X= -110102, Y=10011112;
а) Сложим числа, пользуясь правилами двоичной арифметики:
Y= X= | 1001111 -11010 |
X+Y= | 0110101 |
б) Сложим числа, используя коды (таблица 10):
Таблица 10
Прямой код | Сложение в обратном коде | Сложение в дополнительном коде | ||||||||||||||||||||
Xпр =1’0011010 Yпр =0’1001111 |
|
|
Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр=(X+Y)доп=(X+Y)пр.
4. Сложить двоичные числа X и Y в обратном и дополнительном кодах
X= -111012, Y= -1001102;
а) Сложим числа, пользуясь правилами двоичной арифметики:
X= Y= | -11101 -100110 |
X+Y= | -1000011 |
б) Сложим числа, используя коды (таблица 11):
Таблица 11
Прямой код | Сложение в обратном коде | Сложение в дополнительном коде | ||||||||||||||||||||
Xпр =1’0011101 Yпр =1’0100110 |
|
|
Так как сумма является кодом отрицательного числа (знак 1 в знаковом разряде), то необходимо перевести результаты в прямой код:
|
|
- из обратного кода:
(X+Y)обр=1, 0111100 (X+Y)пр=1, 1000011 (инверсия (X+Y)обр );
- из дополнительного кода:
(X+Y)доп=1, 0111101 (X+Y)пр=1,1000010+0,0000001=1,1000011 (инвер- сия (X+Y)доп , плюс единица к младшему разряду).
Таким образом, X+Y = -1000011 и полученные результаты совпадают с обычной записью.
Дата добавления: 2019-09-13; просмотров: 369; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!