Как вычесть одно двоичное число из другого столбиком?
С двоичным сложением разобрался, а вот вычитание ломает мозг. Нужно из 1101 вычесть 0110. Не пойму, как делать «заём» из старшего разряда, когда сверху 0, а снизу 1. Можно по шагам?
2 ответа
Заём в двоичной работает как в десятичной, только занятая единица «стоит» 2, а не 10. Правила:
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = ? → занимаем у соседа слева: становится 10 - 1 = 1, сосед уменьшается на 1
Вычтем 1101 − 0110 справа налево:
1101
- 0110
------
0111
Разбор: 1−0=1; 0−1 → занимаем, 10−1=1, старший сосед уменьшился (был 1, стал 0); теперь там 0−1 → опять занимаем, 10−1=1, ещё левее сосед был 1, стал 0; 0−0=0. Итог 0111.
Проверка: 13 − 6 = 7, а 0111₂ = 7. Сходится.
Если заём «провалился» через несколько нулей подряд — это нормально, занимаешь у первого ненулевого соседа, а все нули по пути превращаются в 1 (как 100−1=011 в двоичной). На экзамене ОГЭ/ЕГЭ часто проще перевести оба числа в десятичную, вычесть, и перевести ответ обратно — ошибок меньше.