Алгебраическое представление двоичных чисел

Ø Кодирование отрицательных чисел в ЭВМ

Для алгебраического представления чисел (т.е. представления положительных и отрицательных чисел) в ЭВМ используют специальные коды:

• прямой код числа;

• обратный код;

• дополнительный код.

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

Знак числа обычно кодируется двоичной цифрой, при этом:

· код 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