Двоичное вычитание
Мы можем вычесть одно двоичное число из другого, используя стандартные методы, адаптированные для десятичных чисел (вычитание каждой пары битов справа налево, «заимствование» по мере необходимости из битов слева). Однако, если бы мы могли использовать уже знакомую (и более простую) технику двоичного сложения для вычитания, это было бы лучше.
Как мы только что узнали, мы можем представлять отрицательные двоичные числа, используя метод «дополнения до двух» и бит отрицательного разряда. Здесь мы будем использовать эти отрицательные двоичные числа для вычитания путем сложения.
Вот пример проблемы:
Вычитание:7 10 - 5 10 Эквивалент сложения:7 10 + (-5 10 )
Если все, что нам нужно сделать, это представить семь и отрицательную пятерку в двоичной форме (дополнение до двух), все, что нам нужно, это три бита плюс бит отрицательного веса:
положительная семерка =0111 2 отрицательная пятерка =1011 2
Теперь давайте сложим их вместе:
. 1111 <--- Несущие биты . 0111 . + 1011 . ------ . 10010 . | . Отбросить лишний бит . . Ответ =0010 2
Поскольку мы уже определили наше числовое битовое поле как три бита плюс бит отрицательного веса, пятый бит в ответе (1) будет отброшен, чтобы дать нам результат 0010 2 , или положительное два, что является правильным ответом.
Другой способ понять, почему мы отбрасываем этот лишний бит, - это помнить, что крайний левый бит младшего числа имеет отрицательный вес, в данном случае равный отрицательным восьми.
Когда мы складываем эти два двоичных числа вместе, то, что мы фактически делаем с MSB, - это вычитание MSB нижнего числа из MSB верхнего числа. При вычитании никто никогда не «переносит» цифру или бит на следующий левый весовой коэффициент.
Давайте попробуем другой пример, на этот раз с большими числами. Если мы хотим добавить -25 10 до 18 10 , мы должны сначала решить, насколько большим должно быть наше двоичное битовое поле.
Чтобы представить наибольшее (по абсолютной величине) число в нашей задаче, то есть двадцать пять, нам нужно как минимум пять бит, плюс шестой бит для бита отрицательного веса. Давайте начнем с представления положительных двадцати пяти, а затем найдем их дополнение и объединим все в одну нумерацию:
+25 10 =011001 2 (показаны все шесть бит) Дополнение до 11001 2 =100110 2 Дополнение до одного + 1 =дополнение до двух =100111 2 -25 10 =100111 2
По сути, мы представляем отрицательные двадцать пять с помощью отрицательного (шестого) бита со значением отрицательных тридцати двух плюс положительные семь (двоичное 111 2 ).
. 18 10 =010010 2 . . Теперь давайте сложим их вместе и посмотрим, что у нас получится:. . 11 <--- Несущие биты . 100111 . + 010010 . -------- . 111001
Поскольку слева не было «лишних» битов, нет и битов, которые нужно отбрасывать. Крайний левый бит в ответе - 1, что означает, что ответ отрицательный, в форме дополнения до двух, как и должно быть. Преобразуя ответ в десятичную форму, суммируя все биты, умноженные на их соответствующие значения веса, мы получаем:
(1 x -32 10 ) + (1 х 16 10 ) + (1 х 8 10 ) + (1 х 1 10 ) =-7 10
Действительно -7 10 правильная сумма -25 10 и 18 10 .
СВЯЗАННЫЕ РАБОЧИЕ ТАБЛИЦЫ:
- Рабочий лист двоичной математики
Промышленные технологии