двоичное сложение и умножение, как складывать в столбик в двоичной системе
Готовлюсь к зачёту, надо уметь складывать и умножать прямо в двоичной системе, без перевода в десятичную. Дано сложить 1011 + 110 и умножить 101 · 11.
С десятичной всё понятно, а тут где-то надо переносить единицу, и я постоянно ошибаюсь с этими переносами. Покажите в столбик пожалуйста, прям по шагам.
2 ответа
Двоичное сложение — как обычное в столбик, только запомни всего 4 случая:
0+0=0
0+1=1
1+0=1
1+1=10 -> пишем 0, единицу в перенос (в уме)
и ещё 1+1+1=11 (пишем 1, переносим 1) — это когда есть перенос из соседнего разряда.
Складываем 1011 + 110. Выравниваем справа:
1011
+ 110
------
Идём справа налево:
- разряд 1: 1+0 = 1
- разряд 2: 1+1 = 10 → пишем 0, перенос 1
- разряд 3: 0+1+(перенос 1) = 10 → пишем 0, перенос 1
- разряд 4: 1+0+(перенос 1) = 10 → пишем 0, перенос 1
- перенос вышел за край → пишем 1
1011
+ 110
------
10001
Проверка: 1011=11, 110=6, 11+6=17, а 10001 = 16+1 = 17. Сходится.
Теперь умножение 101 · 11. В двоичной оно даже проще: умножаем как в столбик, но множитель состоит только из 0 и 1, поэтому это просто сдвиги и сложение:
101
× 11
------
101 <- 101 × 1
+ 101 <- 101 × 1, сдвиг на один разряд влево
------
Складываем 101 и 1010:
1010
+ 101
------
1111
Проверка: 101=5, 11=3, 5·3=15, а 1111 = 8+4+2+1 = 15. Верно.
Лайфхак: умножение на 10 (двоичное) = сдвиг влево на 1 (как умножение на 10 в десятичной). Так что умножать почти не надо — только аккуратно сложить сдвинутые строки.
Главное где все сыпятся — забывают перенос при 1+1. Веди переносы карандашом над разрядами, как в начальной школе с десятичными.
И для самопроверки: переведи оба слагаемых в десятичную, сложи там, потом переведи результат обратно — ответы должны совпасть. Быстрый способ не сдать неправильный ответ.