Арифметические действия, выполняемые в
двоичной системе, подчиняются тем же правилам, что и в десятичной системе.
Только в двоичной системе перенос единиц в старший разряд возникает чаще, чем
в десятичной. Вот как выглядит таблица сложения в двоичной системе:
0 + 0 = 0 0 + 1 = 1
1 + 0 = 1 1 + 1 = 10 (перенос в старший разряд)
Таблица умножения
для двоичных чисел еще проще:
0 * 0 = 0 0 * 1 = 0 1
* 0 = 0 1 * 1 = 1
Пример выполнения операции сложения в двоичной системе счисления:
1 1 1
1 0 1 12 Красным
цветом показан перенос из младших разрядов в
+ 1 1 02 старшие
1 0 0 0 12
Для проверки правильности выполнения операции переведем все три числа
из двоичной системы в 10-ую:
1011 = 1*23 + 1*21
+ 1 = 8 + 2 + 1 = 1110
3 2 1 0
110 = 1*22 + 1*21
= 4 + 2 = 610
2 1 0
10001 = 1*24 + 1 = 16
+ 1 = 1710
4 3 2 1 0
Сумма первых двух чисел (11 и 6) равна третьему числу (17), следовательно
операция выполнена верно.
Обратите внимание на то, что при
добавлении к числу, состоящему из единиц (11…1), еще одной единицы, получается
число, равное 1 с количеством нулей, равным количеству единиц исходного числа,
например:
1111
11112 + 1 = 1 0000 00002 = 28
Пример выполнения операции вычитания в двоичной системе счисления:
Вычитание выполняется по тем же правилам, что
и в 10-ой системе, но в 10-й системе при заеме единицы старшего разряда она
превращается в 10 единиц младшего разряда, а в 2-й системе – в 2 единицы.
Если нужно произвести заем не в соседнем разряде, а далее влево, то из каждых
двух единиц текущего разряда одна остается в этом разряде, а вторая передается
вправо. Сравните:
9 9
10 1 1 2
1 0 0 010 1 0 0 02
- 1 - 1
9 9 910 1 1 12
Выполним в 2-й системе счисление вычитание 1710
– 610 :
0
1 1 2
1 0 0 0 12
- 1 1 02
1 0 1 12 = 1110
Проверка показывает, что вычитание выполнено верно.
Если в двоичной системе счисления
из числа, являющегося степенью двойки, вычесть 1, то получается число,
состоящее из единиц, количество которых равно количеству нулей двоичного числа,
например:
28
- 1 = 1 0000 00002 – 1 = 1111 11112
1023
= 1024 – 1 = 210 – 1 = 11 1111 11112
Пример выполнения операции умножения в двоичной системе счисления:
1 1 0 12 = 1310
* 1 0 12
= 510
1 1 0 1
+1 1 0 1
1
0 0 0 0 0 12 = 26 +1 = 64 +1 =6510 ( 13 * 5 = 65)
6 5 4 3 2 1 0
Рассмотрим подробнее, как процессор выполняет
умножение двоичных чисел. Пусть надо умножить число 1101 на 101 (оба числа в
двоичной системе счисления). Машина делает это следующим образом: она берет
число 1101 и, если первый справа элемент второго множителя равен 1, то она заносит
его в сумму. Затем сдвигает число 1101 влево на одну позицию, получая тем
самым 11010, и, если, второй элемент второго множителя равен единице, то добавляет его к сумме. Если
элемент второго множителя равен нулю, то сумма не изменяется. Этот процесс
сдвигов и сложений повторяется.
Пример выполнения операции деления в двоичной системе счисления:
Двоичное деление основано на методе, знакомом вам по десятичному делению,
т. е. сводится к выполнению операций умножения и вычитания. Выполнение
основной процедуры - выбор числа, кратного делителю и предназначенного для
уменьшения делимого, здесь проще, так как таким числом могут быть только либо
0, либо сам делитель.
В качестве примера разделим 14310 = 100011112 на
1310 = 11012
1 0 0 0 1 1 1 1 1 1 0 1
- 1 1 0 1 1 0 1 12 = 1110
1 0 0 1 1
- 1 1 0 1
1 1 0 1
- 1 1 0 1
0
Проверка показывает, что деление
выполнено верно (143 / 13 = 11).
Умножение
или деление двоичного числа на 2 приводит к перемещению запятой, отделяющей
целую часть от дробной на один разряд соответственно вправо или влево:
10112 * 102 =
101102.
10112 / 102 =
101.12.
Комментариев нет:
Отправить комментарий