Коды для представления чисел

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

Прямой код (представление в виде абсолютной величины со знаком) двоичного числа – это само двоичное число, в котором все цифры, изображающие его значение, записываются как в математической записи, а знак числа записывается двоичной цифрой.

Итак, прямой код почти не отличается от принятого в математике: для выявления абсолютной величины (модуля) числа, надо отбросить цифру, обозначающую его знак. В n–разрядном двоичном слове n–1 значащих разрядов представляют абсолютную величину числа (Старший бит слова является битом хранения знака или знаковым разрядом. Все последующие биты слова представляют значащие разряды числа).

Прямой код используется при хранении чисел в памяти ЭВМ, а также при выполнении операций умножения и деления, но формат представления чисел в прямом коде неудобен для использования в вычислениях, поскольку сложение и вычитание положительных и отрицательных чисел выполняется по–разному, а потому требуется анализировать знаковые разряды операндов. Поэтому прямой код практически не применяется при реализации в АЛУ арифметических операций над целыми числами. Вместо этого формата широкое распространение получили форматы представления чисел в обратном и дополнительном кодах.

Пример: Дано число X=-1011. Перевести число в прямой код.

Xпр=1.1011

Обратный код положительного числа совпадает с прямым, а при записи отрицательного числа все его цифры, кроме цифры, изображающей знак числа, заменяются на противоположные (0 заменяется на 1, а 1 – на 0).

Пример: Дано число X=-1011. Перевести число в обратный код.

Хобр=1.0100

Дополнительный код (представление в виде дополнения до двойки) положительного числа совпадает с прямым, а код отрицательного числа образуется как результат увеличения на 1 его обратного кода.

Иными словами, процесс построения дополнительного кода отрицательного числа можно разбить на два этапа – построить обратный код, а затем из него построить дополнительный.

Пример: Дано число X=-1011. Перевести в дополнительный код.

Хдоп=1.0101

Пример: Дано число X=-0,1011. Перевести число в прямой, обратный и дополнительный код, при условии, что разрядная сетка содержит 8 разрядов.

Xпр=1,1011000

Хобр=1,0100111

Хдоп=1,0101000

Основным достоинством дополнительного кода является то, что в нем единообразно реализуются операции сложения чисел разных знаков, а операцию вычитания можно свести к операции сложения заменой знака вычитаемого на обратный, причем для реализации дополнительного кода, не требуется ни каких дополнительных аппаратных устройств. Вспомнив, что в памяти ЭВМ числа хранятся в прямом коде, станет ясно, что замена знака вычитаемого может быть выполнена чрезвычайно просто (заменой знака числа в прямом коде на обратный). Именно по указанной причине дополнительный код применяется чаще обратного.
Сложение чисел в обратном и дополнительном кодах выполняется с использованием обычного правила арифметического сложения многоразрядных чисел.
Добавить комментарий