Переполнение двоичного сложения и правильность сумм - PullRequest
0 голосов
/ 01 октября 2018

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

Добавление двух знаков / величины

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

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

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

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

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

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

Pic

1 Ответ

0 голосов
/ 05 октября 2018

С этот университетский курс

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:

...