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

Готовлюсь к экзамену, который у меня через неделю. У меня есть пример вопроса, на который я ответил, но я не уверен, что он правильный. Может ли кто-нибудь проверить мой ответ для меня и объяснить, где что-то пошло не так, если оно было неверным.

Вот вопрос: рассмотрим две двоичные переменные в системе счисления со знаком: A = 011111 и B = 000001. Показывая все необходимые шаги, выполните следующие операции в двоичном формате (т. е. не преобразуйте двоичную систему счисления в другую, чтобы получить результат). Предположим, что у вас есть только шесть битов для ответов.

A-B Использование дополнения до двух.

Вот мой ответ: используйте дополнение до двух на B B = 000001 флип и добавьте 1

 111110
+000001
 --------
 111111 

Тогда A + дополнение до двух B

 011111
+111111
-------
 011110

Окончательный ответ: 011110


person Volken    schedule 02.09.2015    source источник


Ответы (1)


Вычитание с использованием 2-х дополнений: -

Двоичное вычитание можно выполнить, прибавив дополнение до 2 вычитаемого к уменьшаемому. (Уменьшаемое в a-b — это a, а вычитаемое — это b в данном случае)

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

  2. Если конечный перенос равен 0, ответ отрицательный (уменьшаемое меньше вычитаемого) и находится в форме дополнения до 2.

Теперь 2-е дополнение B = 111110 + 1 = 111111.

Далее, дополнение A + 2 к B = 011111 + 111111 = 1011110.

Как видите, сумма получается в 7 битах, и у нас есть 1 в качестве окончательного переноса, поэтому в соответствии с правилом 1 нам нужно отбросить перенос.

Итак, окончательный ответ = 011110.

Ваш ответ соответствует этому ответу, следовательно, ваш ответ остается правильным.

person Am_I_Helpful    schedule 02.09.2015
comment
Спасибо, что подтвердили это для меня - person Volken; 04.09.2015
comment
@Volken - Добро пожаловать, дорогая. Если у вас есть какие-либо другие вопросы, пожалуйста, не стесняйтесь спрашивать. - person Am_I_Helpful; 05.09.2015