Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

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

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




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

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

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

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

а) X = 111, Y = –11;

1) Сложим числа, пользуясь правилами двоичной арифметики:

X = 1 1 1

Y = – 1 1

X+Y = 1 0 0

2) Сложим числа, используя коды:

Прямой код Сложение в обратном коде Сложение в дополнительном коде
Xпр= 0, 0 0 0 0 1 1 1 Yпр= 1, 0 0 0 0 0 1 1   Xобр = 0, 0 0 0 0 1 1 1 Yобр = 1, 1 1 1 1 1 0 0 1 0, 0 0 0 0 0 1 1 +1 (X+Y)обр = 0, 0 0 0 0 1 0 0   Xдоп = 0, 0 0 0 0 1 1 1 Yдоп = 1, 1 1 1 1 1 0 1 1 0, 0 0 0 0 1 0 0 отбрасывается (X+Y)доп = 0, 0 0 0 0 1 0 0

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

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

1) Сложим числа, пользуясь правилами двоичной арифметики:

X = – 1 0 1

Y = – 1 1 0

X+Y = –1 0 1 1

2) Сложим числа, используя коды:

Прямой код Сложение в обратном коде Сложение в дополнительном коде
Xпр= 1, 0 0 0 0 1 0 1 Yпр= 1, 0 0 0 0 1 1 0   Xобр = 1, 1 1 1 1 0 1 0 Yобр = 1, 1 1 1 1 0 0 1 1 1, 1 1 1 0 0 1 1 +1 (X+Y)обр = 1, 1 1 1 0 1 0 0   Xдоп = 1, 1 1 1 1 0 1 1 Yдоп = 1, 1 1 1 1 0 1 0 1 1, 1 1 1 0 1 0 1 отбрасывается (X+Y)доп = 1, 1 1 1 0 1 0 1

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

из обратного кода:

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

из дополнительного кода:

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

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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных