2014-12-20 9 views
0

Либо есть некоторая путаница с тем, что написано ниже, или мой учебник ошибочен. Я смотрел примеры в моем учебнике для добавления 8-битных бинарных цифр с использованием дополнения 2 и наткнулся на эти примеры. Мы должны найти, если какой-либо происходит переполнениеДобавление 8-битных чисел с использованием дополнения 2-й строки


Пример 1]

Добавление +75 и -58

+75 = 01001011 ... (а)
+58 = 00111010
-58 = 11000110 ... (б) [приняла дополнение 2 по +58]

теперь добавляют (а) и (б) мы получаем

        +       1] 00010001

Оно было написано в учебнике, что происходит переполнение со стрелкой, указывающей, что дополнительные 1 отделенной с квадратной скобкой. Этот пример в порядке, и отсюда я понял, что если есть и дополнительно 1, то у нас есть переполнение.

(Вопрос 1: Могу ли я исправить с тем, что я понял?)


Пример 2: Этот пример смутило меня

Добавить 53 и (-13)

53 = 00110101
- (13) = 11110011

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

00110101 + 11110011 = 1] 00101000

А потом они написали: «Внести и выполнить для подписанного бит - 1. Так что переполнения. Отбрасывание бит переноса и остатка является положительным требуемым результатом.

(Основной вопрос: несмотря на то, что эта цифра переполнения (дополнительная 1), почему они сказали, что она не переполнена. И что они переносят и выполняют для подписанных немного написано в выше предложении.)


Я много поиска Google, но не смог найти хорошее разумное решение этой линии они говорили, или может быть это было в моих глазах, но я Бесполезный 'Т понять. Кто-нибудь, пожалуйста, уточните. Большинство примеров, которые я видел (при переполнении стека и других сайтах), были для 4 бит, которые немного запутались. Кто-нибудь, пожалуйста, помогите мне уточнить, спасибо.

+0

Это может помочь пояснить? http://stackoverflow.com/a/21965234/314291 – StuartLC

+0

Спасибо, это частично разрешило мое сомнение :) (спасибо вам, что ответ теперь я знаю, что лишний 1 можно игнорировать ..), теперь что они переносят в и выполнить бит, которые они указали в учебнике, - это то, что я оставил с ... –

ответ

1

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

+70 в двоичном 01000110

+80 в двоичном 01010000

На дополнение: 10010110

1 в MSB (старший значащий бит) указывает на то, что ответ отрицательный, что неверно. Однако если мы добавим дополнительный 9-й бит в качестве знакового бита (= 0), мы получим ответ как 010010110 = 150. Значение этого дополнительного знакового бита равно переносу в результате добавления бит в MSB (который в этом случае = 0).

Ссылка: Архитектура компьютерной системы M.Morris Mano.

+0

Приятный и понятный с очень простым языком .. Принято ... :) –