Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / vorob / VOROB05.DOC
Скачиваний:
36
Добавлен:
17.04.2013
Размер:
361.98 Кб
Скачать

Вычислим теперь разность указанных выше чисел как

126 - 122= 126 + (256 - 122) - 256,

где 256 = 100000000 =М, то есть емкости 8-ми разрядной сетки.

Выражение в скобках (256 – 122) называется дополнением отрицательного двоичного числа до М, а численное значение разности 134 = 10000110 дополнительным кодом отрицательного двоичного числа122(10).

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

Примечание: хотя для прямого кода знак может кодироваться произвольно, но по аналогии с обратным и дополнительным кодами и для него применяется то же кодирование.

Выполним вычисление 126 + 134 – 256, представив числа в двоичных кодах:

Так как выделенный разряд результата выпадает из 8-ми разрядной сетки, то он уменьшает его как раз на нужное нам число 256 (вес девятого разряда), следовательно, первая полученная сумма является окончательным результатом.

Поскольку 256 = 255 + 1, то дополнительный код удобно получать из обратного прибавлением к последнему единицы в младший разряд (это арифметическая операция, а не поразрядная). Дополнительный код отрицательного двоичного числа можно получить из прямого кода и по следующему правилу: установить в знаковый разряд 1, а остальные цифры прямого кода необходимо последовательно слева направо инвертировать до последней единицы, не включая ее, последнюю правую единицу и следующие за ней справа нули оставить без изменения (см. рис. 1, г).

Достоинства дополнительного кода: простота его получения; легко осуществляется сложение чисел с разными знаками, так как не требуется реализовывать циклический перенос; отрицательных чисел на одно больше, чем положительных; как и для обратного кода знаковый разряд и цифровую часть числа можно рассматривать как единое целое, причем веса числовых разрядов положительные и равны 2i, а вес знакового разряда отрицательный и равен 2n1; нуль имеет единственное представление как положительный +0 = 00000000.

В силу своих достоинств дополнительный код в настоящее время используется наиболее часто.

Недостаток дополнительного кода: процедура его получения более сложная, чем для обратного кода.

В общем случае представление дополнительного кода вn-разрядной сетке определяется как:

где С - емкость разрядной сетки (С = 2n для целых чисел и С = 2 для правильных дробей).

Примечание.Часто обратный код называют дополнением до1 (имеется в виду поразрядное дополнение (инверсия)), а дополнительный код дополнением до2 ( это справедливо только для правильной дроби (см. [3]).

Кроме указанных трех основных числовых кодов для представления чисел со знаком, применяется еще смещенный код. Он широко используется в АЦП и ЦАП, а также для представления целых чисел, задающих порядок чисел, представленных в форме с плавающей запятой [6]. Диапазон представляемых чисел такой же, как и у дополнительного кода. Единица в знаковом разряде смещенного кода указывает на представление положительного числа, нуль - отрицательного. Цифровые разряды смещенного кода для положительного числа представляют модуль этого числа, для отрицательного - поразрядную инверсию модуля с арифметическим сложением с единицей (см. рис. 1, д).

Существует простое правило перехода к смещенному коду от дополнительного (и обратно): для перехода необходимо инвертировать знаковый разряд.

Достоинством смещенного кода является то, что из Х1см > Х2см следует Х1 > Х2, что упрощает сравнение чисел со знаком, например порядков чисел, представленных в форме с плавающей запятой.

В общем случае представление смещенного кода в n-разрядной сетке определяется как:

Хсм = А + Х (4)

или, что тоже самое

где А (смещение) - величина, равная весу старшего разряда сетки (А = 2n1 для целых чисел). Диапазон представления чисел: положительных 0 Х А-1;

отрицательных 1 |Х| А.

Сейчас для представления порядков чисел с плавающей запятой стал применяться смещенный код с отрицательным нулем [4; 6] (см. рис. 1, е).

Хсм = А – 1+ Х (6)

или, что то же самое

Диапазон представляемых чисел здесь другой: для положительных 1 Х А,

а для отрицательных 0 |Х| А-1.

Все рассмотренные коды компактно представлены на рис. 2 применительно к использованию их в ЦАП. По оси x представлены десятичные эквиваленты четырехразрядного конкретного кода (b3, b2, b1, b0), рассматриваемого как число без знака, а по оси y соответствующие ему числа со знаком, представленные выходным напряжением ЦАП. Из рис. 2 хорошо видно, что конкретная интерпретация числового кода определяется аппаратной реализацией операционного блока.

Рис. 2. Числовые коды в четырёхразрядных ЦАП.

Соседние файлы в папке vorob