Алгебраическое представление двоичных чисел
Ø Кодирование отрицательных чисел в ЭВМ
Для алгебраического представления чисел (т.е. представления положительных и отрицательных чисел) в ЭВМ используют специальные коды:
• прямой код числа;
• обратный код;
• дополнительный код.
При этом два последних кода позволяют заменить неудобную для компьютера операцию вычитания на операцию сложения с отрицательным числом. Дополнительный код обеспечивает более быстрое выполнение операций, поэтому в компьютере чаще всего применяется именно он.
Знак числа обычно кодируется двоичной цифрой, при этом:
· код 0 означает знак + (плюс);
· код 1 — знак - (минус).
Замечание:
· Принято в целых чисел точкой отделяется знаковый разряд от цифровой части числа, а в правильной дроби - запятой.
· Кодированные числа принято обозначать квадратными скобками [Х]n при этом n принимает значение: пр –в прямом коде; доп –в дополнительном коде; об –в обратном коде.
Пример:
Число Прямой код Дополнительный код Обратный код
Х= +0,10101 [Х]пр= 0,10101 [Х]доп = 0,10101 [Х]об = 0.10101
Y= -0,01011 [У]пр= 1,01011 [Y]доп= 1.10100 [У]об = 1.10101
Прямой код
Прямой код числа представляется в виде его абсолютного значения и кода знака.
Если при сложении в ЭВМ оба слагаемых имеют одинаковый знак, то операция сложения выполняется обычным путем. Если при сложении слагаемые имеют разные знаки, то сначала необходимо выявить большее по абсолютной величине число, из него произвести вычитание меньшего по абсолютной величине числа и разности присвоить знак большего числа.
Важная особенность прямого кода в том, что цифру знакового разряда и цифровую часть числа (модуль) нельзя рассматривать как единое целое. Поэтому при умножении и делении чисел операции со знаком и модулями чисел выполняются отдельно. Выполнение операций умножения и деления в прямом коде выполняется обычным образом, но знак результата определяется по совпадению или несовпадению знаков участвовавших в операции чисел.
Операцию вычитания в этом коде нельзя заменить операцией сложения с отрицательным числом, поэтому возникают сложности, связанные с займом значений из старших разрядов уменьшаемого числа. В связи с этим алгебраические операции с прямым кодом в ЭВМ почти не применяется. Прямой код используется для представления чисел в ЗУ и устройствах ввода-вывода.
Примеры:
а) найти прямой код для целых чисел: х1 =1101 и х2 = -1011.
Получим [х1]1 =0.1101 и [х2]1 = 1.1011
б) найти прямой код для правильных дробей: х1 =0,0101 и х2 = -0,1011
Получим [х1]1 =0,0101 и [х2]1 = 1,1011