Деление в двоичной системе счисления

Мы уже рассмотрели три действия и думаю уже понятно, что в общем-то действия над двоичными числами мало отличаются от действий над десятичными числами. Разница появляется только в том, что цифр две а не десять, но это только упрощает арифметические операции. Так же обстоит дело и с делением, но для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 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

 

 

На этом мы заканчиваем описание простейших арифметических операций, которые необходимо знать, для того, чтобы пользоваться двоичной арифметикой, и теперь попробуем ответить на вопрос "Зачем нужна двоичная арифметика". Конечно, выше уже было показано, что запись числа в двоичной системе существенно упрощает арифметические операции, но в то же время сама запись становится значительно длиннее, что уменьшает ценность полученного упрощения, поэтому необходимо поискать такие задачи, решение которых существенно проще в двоичных числах.