Деление
Деление − операция, обратная умножению, поэтому при делении двоичных чисел, так же как и в десятичной системе счисления, операция вычитания повторяется до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом. Пример. Вычислить 204(10): 12(10) в двоичном коде: Машинные коды Любая машинная операция в ЭВМ основана на использовании простейших микроопераций типа сложение и сдвиг, что позволяет иметь единое арифметико-логическое устройство для выполнения любых операций, связанных с обработкой информации. При сложении чисел под знак числа отводится специальный знаковый разряд. Знак плюс кодируется двоичным нулем, а знак минус — двоичной единицей. Действия над прямыми кодами двоичных чисел при выполнении операций создают трудности, т.к. необходимо учитывать значения знаковых разрядов. В ЭВМ все операции выполняются над числами, представленными специальными машинными кодами, которые позволяют обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения. Различают прямой код (пк), обратный (ок) и дополнительный (дк) двоичных чисел.
Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака перед старшим числовым разрядом. Пример. Даны два числа (А и В) в десятичной системе счисления. Требуется записать их прямой код. А(10)= +10 А(2)= +1010 Апк=0 1010 В(10)= -15 В(2)= -1111 Впк=1 1111
Обратный код образуется по правилу: 1) обратный код положительного числа совпадает с его прямым кодом; 2) обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные (противоположные).
Пример. Даны два числа (А и В) в десятичной системе счисления. Требуется записать их обратный код. А(10)= +5 А(2)= +101 Апк=0 101 Аок=0 101 В(10)= -13 В(2)= -1101 Впк=1 1101 Вок=1 0010
Сложение положительного числа с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок=1…1111…….. Нуль в обратном коде имеет двоякое значение: он может быть как положительным числом (0…00000….), так и отрицательным (1…11111….). Значение отрицательного нуля совпадает с МЕок. Такое двойственное представление нуля есть причина того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом. Дополнительный код положительного числа совпадает с его прямым кодом, а отрицательного числа представляет собой результат суммирования младшего разряда обратного кода числа с единицей. Пример. Даны два числа (А и В) в десятичной системе счисления. Требуется записать их в дополнительном коде. А(10)=+19 А(2)=+10011 Апк=0 10011; Аок=0 10011 Адк=0 10011 В(10)=-13 В(2)=-1101 Впк=1 1101 Вок=1 0010 Вдк=1 0010 (+1) =0011
Существует другой (быстрый) способ формирования дополнительного кода: двоичное число в прямом коде просматривается от младшего разряда к старшему (справа налево). Пока встречаются нули, их копируют в одноименные разряды результата. Первая, встретившаяся единица также копируется в соответствующий разряд, а каждый последующий бит исходного числа заменяется на противоположный (0 на 1 или 1 на 0). Знаковый разряд свое значение не изменяет. Пример. 1. Дано число А(10)= - 44 А(2)= - 101100 Апк=1 101 100 Адк=1 010 100
2. Дано число А(10)= - 23 А(2)= - 10111 Апк=1 1011 1 Адк=1 0100 1
Преобразование кодов при алгебраическом сложении: А+В = А+В -А+В = (-А)+В А-В = А+(-В) -А-В = (-А)+(-В)
|