Реферат: Арифметические основы ЦВМ
Поэтому в ЭВМ, вне зависимости от величины числа, его код всегда имеет фиксированное количество двоичных цифр.
Кроме этого, в двоичном алфавите нет никаких символов, кроме цифр 0 и 1, и необходимы новые правила для указания знака числа. Суть этих правил сводится к тому, что знак плюс изображается цифрой 0, знак минус - цифрой 1, а цифра, изображающая знак всегда записывается самой первой в записи числа.
Обратите внимание, что код числа всегда содержит изображение его знака , в отличие от математической записи, которая позволяет опускать знак плюс при изображении положительного числа.
Так, код 011101, согласно этим правилам, изображает положительное (самая левая цифра - 0) двоичное число 11101.
Для того, чтобы более просто, и, следовательно, более экономично реализовать устройство АЛУ применяют несколько разных кодов чисел. Это связано с тем, что разные операции в ЭВМ более просто реализуются в разных кодах.
При выполнении арифметических операций в ЭВМ применяют прямой, обратный и дополнительный коды чисел.
Прямой код двоичного числа - это само двоичное число, в котором все цифры, изображающие его значение, записываются как в математической записи, а знак числа записывается двоичной цифрой.
При этом никакого символа, отделяющего эту цифру от старшей цифры, используемой при изображении его величины, не допускается. В таких случаях говорят о том, что назначение цифры в коде определяется его позицией.
Примеры.
Изображаемое число Код
· +1101 (+13) 0000 1101 ( В примерах коды )
· +1011101 (+93) 0101 1101 ( изображаются )
· 1101 (-13) 1000 1101 ( восемью цифрами )
Итак, прямой код почти не отличается от принятого в математике: для выявления абсолютной величины (модуля) числа, надо отбросить цифру, обозначающую его знак.
Однако применительно к операциям сложения и вычитания такой код неудобен: правила счета для положительных и отрицательных чисел различаются. Чтобы прояснить это обстоятельство, представим что длина кода (слова) равна 5 двоичным разрядам и запишем несколько чисел в нем:
Число | -2 | -1 | 0 | +1 | +2 |
Код | 10010 | 10001 | 00000 | 00001 | 00010 |
Как видно из примера, при использовании прямого кода при переходе значения число через ноль, происходит скачкообразное изменение кода! Поэтому построение устройства, в котором должны выполняться такие действия арифметики, как сложение чисел с разными знаками и вычитание, становится сложной задачей.
Прямой код используется при хранении чисел в памяти ЭВМ, а также при выполнении операций умножения и деления.
Чтобы построить более простые схемы АЛУ предложены и активно применяются обратный и дополнительный коды.
Обратный код положительного числа совпадает с прямым, а при записи отрицательного числа все его цифры, кроме цифры, изображающей знак числа, заменяются на противоположные ( 0 заменяется на 1, а 1 - на 0).
Примеры записи.
Изображаемое число Код
· +1101 (+13) 0000 1101 ( В примерах коды )
· +1011101 (+93) 0101 1101 ( изображаются )
· 1101 (-13) 1111 0010 ( восемью цифрами )
Сопоставление этой записи с прямым кодом показывает, что непосредственно восстановить абсолютную величину (модуль) отрицательного числа непросто. Однако, в этом коде как к положительным, так и к отрицательным числам можно применять одни и те же правила, а операцию А-В можно заменить операцией сложения чисел А и “минус В”.
Посмотрим, как представляется последовательные числа при переходе через ноль:
Число | -2 | -1 | 0 | +1 | +2 |
Код | 11101 | 11110 | 00000 | 00001 | 00010 |
Из примера видно, что переход через ноль также не выглядит естественным. Отмеченная особенность влечет за собой и следующее - в обратном коде ноль изображают две различающиеся комбинации: 00000 (+0) и 11111 (-0), что усложняет аппаратную реализацию операций.
Для восстановления прямого кода отрицательного числа из обратного кода надо все цифры, кроме цифры, изображающей знак числа, заменить на противоположные.
Дополнительный код положительного числа совпадает с прямым, а код отрицательного числа образуется как результат увеличения на 1 его обратного кода.