Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
При сложении чисел в знаковом разряде может появиться две цифры, вторую единицу от запятой называют единицей переноса.
При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.
При сложении чисел в обратном коде возникающаяединица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.
Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах, кроме знакового, на противоположные. Дополнительный код преобразуется в прямой так же, как и обратный, с последующим прибавлением единицы к младшему разряду.
Пример. Сложить X и Y в обратном и дополнительном кодах:
а) X= 1111 и Y= –101.
Сложим числа, пользуясь:
правилами двоичной арифметики | обратным кодом | дополнительным кодом | ||
X= 1111 Y= – 101 X+Y= 1010 | Xобр= 0,0001111 Yобр= 1,1111010 1 0,0001001 +1 (X+Y)обр= 0,0001010 | Xдоп= 0,0001111
Yдоп= 1,1111011
(X+Y)доп= 0,0001010 |
Так как результат сложения является кодом положительного числа (знаку плюс (+) соответствует 0 в знаковом разряде), то (X+Y)обр=(X+Y)доп=(X+Y) пр.
б) X= –101,Y= –111.
Сложим числа, пользуясь:
правилами двоичной арифметики | обратным кодом | дополнительным кодом | ||
X = – 101 Y = – 111 X+Y= –1100 | Xобр= 1,1111010 Yобр= 1,1111000 1 1,1110010 +1 (X+Y)обр= 1,1110011 | Xдоп= 1,1111011
Yдоп= 1,1111001
(X+Y)доп= 1,1110100 |
Так как сумма является кодом отрицательного числа (знак 1), то необходимо перевести результаты в прямой код:
· из обратного кода: (X+Y)обр=1,1110011 Þ (X+Y)пр=1,0001100;
· из дополнительного кода: (X+Y)доп=1,1110100 Þ (X+Y)пр=1,0001011+0,0000001, (X+Y)пр =1,0001100.
Получили X+Y= –1100, результат совпадает с суммой, полученной по правилам двоичной арифметики.
Задание 3. Сложите числа X и Y в модифицированном обратном и модифицированном дополнительном восьмиразрядных кодах. При обнаружении переполнения увеличьте число разрядов в кодах и повторите суммирование. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики.
Дата публикования: 2015-09-18; Прочитано: 647 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!