Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие ИНФОРМАТИКА.doc
Скачиваний:
129
Добавлен:
09.06.2015
Размер:
2.16 Mб
Скачать

2.5. Коды для представления чисел в компьютере

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

Общая идея построения кодов такова. Код трактуется как число без знака, а диапазон представляемых кодами чисел без знака разбивается на два поддиапазона. Один из них представляет положительные числа, а другой – отрицательные. Разбиение выполняется таким образом, чтобы принадлежность к поддиапазону определялась максимально просто. Очень удобно формировать коды так, чтобы значение старшего разряда указывало на знак представляемых чисел. Использование такого кодирования позволяет говорить о старшем разряде как о знаковом, а об остальных – как о цифровых разрядах кода, хотя в общем случае код трактуется как число без знака.

2.5.1.Прямой код

Прямой код двоичного числа G, представляемого в n - разрядной сетке, определяется как

G , при G>=0;

Gпр= A+|G|, при G<=0,

где А – величина, равная весу старшего разряда сетки (для дробей А = 1, а для целых А = 2n-1). Диапазон представляемых прямым кодом чисел 0<=|G|<A.

Признаком представления положительных (отрицательных) чисел является наличие 0 (1) в старшем разряде, называемом знаковым. Таким образом, положительные числа представляются кодами 0<=Gпр<A, а отрицательные A<=Gпр<2A.

Сложение в прямом коде чисел, имеющих одинаковые знаки, выполняется достаточно просто. Числа складываются, и сумме присваивается код знака слагаемых. Значительно более сложной является операция алгебраического сложения в прямом коде чисел с разными знаками. В этом случае приходится определять большее по модулю число, производить вычитание чисел и присваивать разности знак большего по модулю числа.

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

2.5.2.Обратный код

Обратный код двоичного числа G, представляемого в n - разрядной сетке, определяется как

G , при G>=0;

Gобр= В-|G| , при G<=0,

где В – величина наибольшего числа без знака, размещающегося в n - разрядной сетке (для дробей В=2-2-(n-1), а для целых В=2n-1). Диапазон представляемых обратным кодом чисел такой же, как и у прямых кодов: 0<= |G| <A. По определению обратный код отрицательного числа представляет собой дополнение модуля исходного числа до наибольшего числа без знака, помещающегося в разрядную сетку. В связи с этим получение обратного кода двоичного отрицательного числа сводится к получению инверсии n - разрядного кода модуля этого числа. Т.к. модуль чисел, представимых в n - разрядной сетке, |G|<A, в старшем (знаковом) разряде обратного кода у положительных чисел будет 0, а у отрицательных 1. В цифровых разрядах обратного двоичного кода представляется либо модуль числа (для положительных чисел), либо его инверсия (для отрицательных чисел).