Машинные коды
Для алгебраического представлений чисел (т.е. для представления положительных и отрицательных чисел) в машинах используются специальные коды: прямой, обратный и дополнительный. Причем два последних позволяют заменить неудобную для ЭВМ операцию вычитания на операцию сложения с отрицательным числом; дополнительный код обеспечивает более быстрое выполнение операций, поэтому в ЭВМ применяется чаще именно он.
Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (нуль или единица) перед его старшим числовым разрядом.
Пример 4
A10 = +10; А2 = +1010; [А2]п = 01010;
В10 = -14; В2 = -1110; [В2]п = 11110. [Я2]0= 10011. Я2=-1100; [Я2]0= 10011. Я2 = -ШО; [52]п=11110.
Обратный код двоичного числа образуется по следующему правилу. Обратный код положительных чисел совпадает с их прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы – нулями.
Пример 5
A10 = +4; А2 = +100; [А2]п = [А2]о = 0100;
В10 = -12; В2 = -1100; [В2]о = 10011.
Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда.
Пример 6
A10 = +18; А2 = +10010; [А2]п = [А2]0 = [А2]д = 010010;
В10 = -12; В2 = -1100; [В 2]д = [В2]о +20= 10011 + 1 = 10100.
Использование обратного и дополнительного кодов заменяет операцию вычитания операцией сложение. Это позволяет производить арифметические операции, используя только сумматоры, т.е. упростить аппаратные средства арифметически – логического устройства.
0 + 0 = 0 0 + 1 = 1 1 + 1 = 10 10 + 1 = 11
В двоичной системе счисления сложение делается точно так же, как и в десятичной. Только нужно помнить, что в этой системе каждый разряд может принимать лишь два значения: либо 0, либо 1. Точно так же, как и в десятичной системе, складываем числа поразрядно, начиная с младшего разряда. При сложении двух единиц мы получим ноль в этом разряде и единицу переноса в следующий разряд.
10000110
Умножение тоже делается аналогично умножению в десятичной системе - столбиком. При этом умножение сводится к сдвигу влево и сложению, полученных сдвигом чисел. Точно также деление в двоичной системе сводится к сдвигу и вычитанию. Это важно при построении вычислительных устройств. Именно поэтому многие простые микропроцессоры не имеют в составе своих команд, команд умножения и деления. Но обязательно, каждый процессор имеет команды сдвига и сложения (вычитания). При необходимости выполнения операций умножения либо деления и отсутствии данных команд у процессора эти действия выполняются, используя команды сдвига сложения и вычитания.