Мы уже рассмотрели три действия и думаю уже понятно, что в общем-то действия над двоичными числами мало отличаются от действий над десятичными числами. Разница появляется только в том, что цифр две а не десять, но это только упрощает арифметические операции. Так же обстоит дело и с делением, но для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 234 разделить на 7. Как мы это делаем.
2 |
3 |
4 |
7 |
|
|
|
|
|
|
Мы выделяем справа (от старшего разряда) такое количество цифр, чтобы получившееся число было как можно меньше и в то же время больше делителя. 2 - меньше делителя, следовательно, необходимое нам число 23. Затем делим полученное число на делитель с остатком. Получаем следующий результат:
|
2 |
3 |
4 |
7 |
|
- |
2 |
1 |
|
3 |
|
|
|
2 |
4 |
|
|
Описанную операцию повторяем до тех пор, пока полученный остаток не окажется меньше делителя. Когда это случится, число полученное под чертой, это частное, а последний остаток - это остаток операции. Так вот операция деления двоичного числа выполняется точно также. Попробуем
Пример: 10010111 / 101
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
Ищем число, от старшего разряда которое первое было бы больше чем делитель. Это четырехразрядное число 1001. Оно выделено жирным шрифтом. Теперь необходимо подобрать делитель выделенному числу. И здесь мы опять выигрываем в сравнении в десятичной системой. Дело в том, что подбираемый делитель это обязательно цифра, а цифры у нас только две. Так как 1001 явно больше 101, то с делителем всё понятно это 1.
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
- |
|
1 |
0 |
1 |
|
|
|
|
1 |
|
|
|
|
1 |
0 |
0 |
|
|
|
|
|
|
|
Итак, остаток от выполненной операции 100. Это меньше чем
101, поэтому чтобы выполнить второй шаг деления, необходимо добавить к 100
следующую цифру, это цифра 0. Теперь имеем следующее число:
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
- |
|
1 |
0 |
1 |
|
|
|
|
1 |
|
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
- |
|
1 |
0 |
1 |
|
|
|
|
1 |
1 |
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
1000 больше 101 поэтому на втором шаге мы опять допишем в частное цифру 1 и получим следующий результат (для экономии места сразу опустим следующую цифру).
Полученное число 110 больше 101, поэтому и на этом шаге мы запишем в частное 1. Получиться так:
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
- |
|
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
- |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
|
|
Полученное число 11 меньше 101, поэтому записываем в частное цифру 0 и опускаем вниз следующую цифру. Получается так:
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
1 |
1 |
1 |
0 |
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
- |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
|
|
|
Полученное число больше 101, поэтому в частное записываем цифру 1 и опять выполняем действия. Получается такая картина:
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
- |
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
- |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
- |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
|
|
|
|
|
Полученный остаток 10 меньше 101, но у нас закончились цифры в делимом, поэтому 10 это окончательный остаток, а 1110 это искомое частное.
Проверим в десятичных числах
10010011 = 147 101 = 5
10 = 2 11101 = 29
|
1 |
4 |
7 |
5 |
|
- |
1 |
0 |
|
2 |
9 |
|
|
4 |
7 |
|
|
|
- |
4 |
5 |
|
|
|
|
|
2 |
|
|
На этом мы заканчиваем описание простейших арифметических операций, которые необходимо знать, для того, чтобы пользоваться двоичной арифметикой, и теперь попробуем ответить на вопрос "Зачем нужна двоичная арифметика". Конечно, выше уже было показано, что запись числа в двоичной системе существенно упрощает арифметические операции, но в то же время сама запись становится значительно длиннее, что уменьшает ценность полученного упрощения, поэтому необходимо поискать такие задачи, решение которых существенно проще в двоичных числах.