Умножение в двоичной системе счисления
Для начала рассмотрим следующий любопытный факт. Для того, чтобы умножить двоичное число на 2 (десятичная двойка это 10 в двоичной системе) достаточно к умножаемому числу слева приписать один ноль.
Пример. 10101 * 10 = 101010
Проверка.
10101 = 1*24 + 0*23 + 1*22 + 0*21 +1*20 = 16 + 4 + 1 = 21
101010 =1*25 + 0*24 + 1*23 + 0*22 +1*21 +0*20 = 32 + 8 + 2 = 42
21 * 2 = 42
Если мы вспомним, что любое двоичное число разлагается по степеням двойки, то становится ясно, что умножение в двоичной системе счисления сводится к умножению на 10 (то есть на десятичную 2), а стало быть, умножение это ряд последовательных сдвигов. Общее правило таково: как и для десятичных чисел, умножение двоичных выполняется поразрядно. И для каждого разряда второго множителя к первому множителю добавляется один ноль справа. Пример (пока не столбиком):
1011 * 101 Это умножение можно свести к сумме трёх порязрядных умножений:
1011 * 1 + 1011 * 0 + 1011 * 100 = 1011 +101100 = 110111 В столбик это же самое можно записать так:
|
|
1 |
0 |
1 |
1 |
|
* |
|
1 |
0 |
1 |
|
|
1 |
0 |
1 |
1 |
|
0 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
|
|
1 |
1 |
0 |
1 |
1 |
1 |
Проверка:
101 = 5 (десятичное) 1011 = 11 (десятичное)
110111 = 55 (десятичное) 5*11 = 55 верное равенство
Решите самостоятельно:
Варианты 1,7,9,14 1101 * 1110 = _________________
Варианты 3,11,16 1010 * 110 = __________________
Варианты 2,10,15 1011 * 11 = _______________
Варианты 4,6,12 101011 * 1101 = _______________
Варианты 5,8,13 10010 * 1001 = __________________
Деление в двоичной системе счисления
Мы уже рассмотрели три действия и думаю уже понятно, что в общем-то действия над двоичными числами мало отличаются от действий над десятичными числами. Разница появляется только в том, что цифр две а не десять, но это только упрощает арифметические операции. Так же обстоит дело и с делением, но для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 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 |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
Полученное число 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 |
|
|
На этом мы заканчиваем описание простейших арифметических операций, которые необходимо знать, для того, чтобы пользоваться двоичной арифметикой, и теперь попробуем ответить на вопрос "Зачем нужна двоичная арифметика". Конечно, выше уже было показано, что запись числа в двоичной системе существенно упрощает арифметические операции, но в то же время сама запись становится значительно длиннее, что уменьшает ценность полученного упрощения, поэтому необходимо поискать такие задачи, решение которых существенно проще в двоичных числах.
1. Выполните сложение, вычитание, умножение в двоичной системе счисления:
Вариант 1. 1111 и 1011; |
|
|||
Вариант 2.1001 и 110; |
|
|||
Вариант 3.11001 и 10111; |
|
|||
Вариант 4.111 и 101; |
|
|||
Вариант 5.10011 и 1101; |
|
|||
Вариант 6.10011 и 1001; |
|
|||
Вариант 7.110110 и 11111; |
|
|||
Вариант 8.10011001 и 1101; |
|
|||
Вариант 9.10101 и 1101; |
|
|||
Вариант 10. 10111и 111; |
|
|||
Вариант 11.11001и 111; |
|
|||
Вариант 12.10111 и 111100; |
|
|||
Вариант 13.11000 и 1101; |
|
|||
Вариант 14.1011и 111. |
|
|||
Вариант 15.1100100 и 100011; |
|
|||
Вариант 16.101101 и 1101; |
|
|||
|
|
|||
Ответ: __________________
2. Выполните деление в двоичной системе счисления:
Вариант 1. 10100101: 1011=
Вариант 2. 10100101:1111=
Вариант 3 110110:110=
Вариант 4 110110:1001=
Вариант 5 1000111111:11001=
Вариант 6 1000111111:10111=
Вариант 7 11110111:10011=
Вариант 8 11110111:1101=
Вариант 9 10101011: 10011=
Вариант 10 10101011: 1001=
Вариант 11 10100001:111=
Вариант 12 10100001:10111=
Вариант 13 10101111:111=
Вариант 14 10101111:11001=
Вариант 15 1001101:1011=
Вариант 16 1001101:111=
Ответ: __________________
