Сложение, вычитание, умножение, деление.

Рассмотрим сущность выполнения действия сложения, например, чисел 45 и 87 в десятичной системе (см. табл.2.1):

Сначала складываем цифры младшего разряда — нулевого, соответствующего 10° — единицам: 5+7=12. В числе 12 уже две цифры, причем цифра младшего разряда суммы — 2, а цифра 1 принадлежит более старшему разряду — первому, соответствую­щего 101 — десяткам. Поэтому 2 записываем, 1 — запоминаем, т.е. в младшем разряде суммы, соответствующем единицам, будет 2, а 1, соответствующую более старшему разряду — десяткам, будем учитывать при сложении цифр первого разряда.

Далее складываем цифры первого разряда 4+8 и прибавляем к ним 1, которую запомнили; получаем 13. Теперь цифра, соответствующая первому разряду суммы — 3, а 1 переносится в старший разряд, соответствующий второму разряду суммы — 102, т.е. сотням.

Аналогично выполняется сложение в двоичной системе, например, чисел «шесть» и «семь» (табл.1). Числа шесть и семь в двоичной системе имеют вид:

6=110 (1•22+1•21+0•2°=4+2+0=6);

7=111 (l•22+1•21+1•2°=4+2+1=7).

Сложение начинаем с нулевого разряда, соответствующего 2°: 0+1=1 (младшая цифра суммы равна 1).

Переходим к сложению цифр первого разряда, соответствующего 21:1+1=2. Для записи числа 2 в двоичной системе требуется код: 10 (1•21+0•2°=2), т.е. цифра первого разряда суммы равна 0, а 1 переносим в старший разряд (нуль записываем, один запоминаем). Таким образом, если сумма цифр больше единицы, происходит перенос в старший разряд.

Таблица 2.1

Сложение и вычитание в двоичной системе

Сложение Вычитание
десятичная двоичная десятичная двоичная
Сложение, вычитание, умножение, деление. - student2.ru 1 Сложение, вычитание, умножение, деление. - student2.ru 1 . . Сложение, вычитание, умножение, деление. - student2.ru 1
+ 110(6) + 111(7) - 1101 (13) 1101 (13) - + 110 (6) 001 (обратный код)
1101 (13) Сложение, вычитание, умножение, деление. - student2.ru 111 (7) 1110 + 1 111 (7)

Сложение, вычитание, умножение, деление. - student2.ru Сложение, вычитание, умножение, деление. - student2.ru Примечание. 1 - - перенос из младшего разряда в старший; 1 - перенос из старшего разряда в младший; • - заем из старшего разряда.

Далее складываем 1+1 и прибавляем 1, которую запомнили, получаем 3. Число 3 в двоичной системе записываем кодом 11 (1•21+1•2°=3), т.е. цифра второго разряда суммы равна 1, а старшая 1 переносится в следующий (третий) разряд. Таким образом, сумма чисел 110 и 111 равна 1101. Нетрудно убедиться, что это двоичное число — 13 (1•23 + 1•22 + 0•21 + 1•2°=13).

Решим несколько примеров на сложение в двоичной системе счисления самостоятельно с проверкой полученных результатов.

Пример 2.4.1001(9)+1011(11)=10100(20)

Рассмотрим теперь сущность действия вычитания в десятичной системе на примере: 132-87 (табл.2.1):

сначала вычитаем цифры нулевого разряда, но так как из двух нельзя вычесть семь, занимаем 1 (один десяток - основание системы счисления) в старшем разряде, что отмечаем точкой над цифрой 3; получаем 10+2=12; 12-7=5;

при вычитании цифр первого разряда необходимо занять 1 в следующем старшем разряде и, учитывая, что в первом разряде ос­талась цифра 2, получаем 10+2-8=4.

Аналогично выполняем вычитание из числа 1101(13) числа 110 (6) в двоичной системе:

нулевой (20) разряд: 1-0=1;

первый (21) разряд: из нуля нельзя вычесть единицу, поэтому занимаем 1 (т. е. одно основание системы счисления, равное двум) и получаем 2-1=1;

второй (22) разряд: из нуля, оставшегося после занимания единицы в этом разряде, нельзя вычесть единицу, поэтому занимаем 1 (основание, равное двум) в третьем (23) разряде: 2-1=1. Получим 111, т. е. двоичное число «семь».

Покажем, что операцию вычитания можно заменить сложением, но для этого уменьшаемое (т. е. 1101) надо складывать с обратным кодом вычитаемого, который получаем, заменив цифры на обратные (т. е. 1 на 0, а 0 на 1). Произведя сложение, переносим 1 из старшего разряда в младший, как показано стрелкой, и получаем двоичный код 111, соответствующий числу «семь».

Решим несколько примеров на вычитание в двоичной системе счисления самостоятельно с проверкой полученных результатов.

Пример 2.5.1011(11)-1001(9)=10(2)

Действия умножения и деления (а как доказано в математике, и любые другое операции) можно свести к сложению и вычитанию кодов, сдвинутых влево или вправо на то или иное число разрядов. Сдвиг числа влево на один разряд соответствует умножению его на 2, а вправо — делению на 2. Действительно, каждая цифра числа при его сдвиге влево будет иметь вес уже не i-го разряда, т. е. 2i, а (i+1)-го, т.е. 2i+1. При сдвиге вправо вес каждой цифры будет уменьшаться в 2 раза, т.е. составит не 2i, а 2i-1.

Покажем, как с помощью операций сложения и сдвига можно выполнить умножение двоичных чисел. Вычисление произведения осуществляют от старших разрядов множителя к младшим по шагам. На каждом шаге анализируют очередную цифру множителя. Если она равна 1, то к промежуточному результату вычислений прибавляют множимое, если 0, то результат оставляют без изменений. При переходе к более младшему разряду промежуточный результат сдвигают влево на один разряд, т.е. умножают на два. Последнему шагу вычислений соответствует нулевой разряд множителя.

Обозначим через А множимое, через В — множитель, а через bi - i-й разряд множителя. Тогда в результате вычислений по описанному выше алгоритму будет получено число П:

Сложение, вычитание, умножение, деление. - student2.ru

Выражение в скобках есть не что иное, как число В, а число П — произведение A и B.

Пример 2.6. Необходимо перемножить два числа 110 (6) и 111 (7).

110•111=101010

х

-----

----------

Деление производится аналогично делению в десятичной системе счисления.

Пример 2.7. Разделить 13 на 64. выраженных в двоичной системе счисления.

13=1101; 64=1000000. 1101:1000000=0.001101

Поскольку вычитание сводится к сложению обратного кода, становится понятным, почему любые математические операции можно осуществить с помощью простейших операций сложения и сдвига, что и используется в процессорах ЭВМ.

Таким образом, если в десятичной системе для записи кодов ис­пользуется десять цифр (от 0 до 9), то в двоичной системе — лишь две (0 и 1), которые называют битами (двоичными цифрами).

В любой системе кодирования должно выполняться неравенство N<Sn, где N — количество кодируемых объектов; S — основание кода (основание системы счисления); n — длина кода (количество разрядов в коде-числе). Например, для кодирования количества «тринадцать» в деся­тичной системе счисления достаточно двухразрядного кода 13<102, а в двоичной необходим четырехразрядный код 13<24=16, как показано в табл.2.2. Для хранения и обработки информации в виде текстов, формул и чисел необходимо с помощью бит закодировать около 150 различных символов (заглавные и строчные буквы латинского и русского алфавитов, знаки препинания, математические знаки, десять цифр и т.п.), т. е. N=150. Для этого необходимы 8-разрядные коды (150<28=256). Восьмиразрядный код называют байтом. Емкость памяти ЭВМ оценивают в килобайтах (кбайт), мегабайтах (Мбайт) и гигабайтах (Гбайт).

В табл.2.2 приведены примеры двоичного кодирования знаков, латинских букв и десятичных цифр.

Таблица 2.2

Примеры двоичного кодирования знаков

Символ Код Символ Код Символ Код
А
а
В
в Точка
С Плюс
с Минус
D

В кодах табл.2.2, например, величина -6.285 будет закодирована так:

01101101 11110110 01001011 11110010 11111000 11110101

(минус) (шесть) (точка) (два) (восемь) (пять)

Наши рекомендации