Бинарное переполнение и правильность суммы

Мне нужно немного советов по следующим темам: добавление двух знаковых значений и добавление двоичных чисел с двумя дополнениями. Я сделал свои расчеты на бумаге и загрузил фотографию. Извините, если мой снимок боком (я не знаю, почему загрузка делает это)

Добавление двух подписи / величины

  1. +6 + (-6) Игнорировать перенос 1. Сумма равна 4 и неверна. Нет переполнения, потому что мы добавили два числа с разными подписанными индикаторами, 0 и 1.

  2. +4 + (+5) Сумма равна -1 и неверна. Переполнение, потому что мы, потому что мы добавили два числа с теми же подписанными индикаторами 0.

Добавление двух дополнительных двоичных чисел

  1. +6 + (-6) Игнорировать перенос 1. Сумма равна 0 и правильно. Нет переполнения, потому что мы добавили два числа с разными подписанными индикаторами, 0 и 1.

  2. +4 + (+5) Сумма равна -7 и неверна. Переполнение, потому что мы, потому что мы добавили два числа с теми же подписанными индикаторами 0.

Правильно ли я понял о переполнении двоичного сложения и правильности суммы, хотя мои примеры?

фильм

Всего 1 ответ


Из этого курса университета

4.11.4. Сложение и вычитание Сложение и вычитание требуют внимания к биту знака. Если знаки одинаковые, мы просто добавляем величины как неподписанные числа и следим за переполнением. Если знаки отличаются, мы вычитаем меньшую величину из большей и сохраняем знак большего.

Итак, для знаковой величины у вас первая ошибка.

Знаки отличаются друг от друга, поэтому вы вычитаете большую из меньших. Поскольку они одинаковы, неважно, что вы выбираете. Результат равен 0, и это правильно. +0 или -0. Это не имеет значения, поскольку оба они представляют одно и то же.

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

1         carry (ignore carry to the most sign bit)
0100  +4
0101  +5
--------
0001  +1

Результат равен +1, и произошел переполнение, которое было обнаружено путем выполнения до самого значимого бита, который является битом знака.

Проверьте это для получения дополнительной информации http://pages.cs.wisc.edu/~smoler/x86text/lect.notes/arith.int.html


2 дополнения

Ваши ответы верны: tada:


Есть идеи?

10000