2014-08-31 8 views
0

Мне было интересно, может ли кто-нибудь проверить мою работу для меня очень быстро. Если мне даны два отрицательных числа: -33 и -31. Если я добавлю их вместе, что будет результатом с использованием дополнения 2.Добавление двух отрицательных чисел с использованием дополнения 2

ПРИМЕЧАНИЕ: Должна использоваться длина слова 6-бит для операции.


МОЙ ОТВЕТ

Так после выполнения этого я вычислен -31, чтобы быть в 2-х 100001. Я также вычислил -33 как 011111 в дополнении 2. При их объединении я получил 1000000, однако это число равно 7 цифрам, поэтому я отрубил бит более высокого порядка, так как я привязан к слову длиной 6 бит. Это дает число 000000. Который содержит знаковый бит 0, то есть он будет четным. Однако, поскольку сумма 2 отрицательных не может быть даже, это, очевидно, переполнение. Поэтому я беру 2 из 000000, который просто 000000.

Таким образом, ответ должен быть: 0, так как произошло переполнение буфера. Это кажется вам правильным? БЛАГОДАРЮ. :)

ответ

1

Прежде всего: -33 + (-31) не может быть 0.

-33 не представима в 6bit дополнения до 2. 01 1111b: +31 в десятичной форме, поэтому результат сложения равен 0.

Итак, правильный ответ примерно такой: результата нет, потому что -33 является недопустимым числом в 6-битном представлении.

в 7 бит 2 в дополнение -33 = 101 1111b

110 0001 
+101 1111 
    = 
1100 0000 

, которая равна -64.