Он используется при выводе чисел на индикацию, а также в некоторых аналого-цифровых преобразователях (АЦП). Вообще же это не лучшая форма представления чисел со знаком, особенно при выполнении вычислений, так как в данном случае операции вычитания и сложения выполняются по-разному (т. е. сложение «не работает» для чисел со знаком). Кроме того, здесь могут присутствовать нули двух типов (+0 и —0), поэтому при выборе нужного из них следует быть очень внимательным.
Последовательность всех чисел благодаря этой операции, начиная с наибольшего отрицат. числа и кончая наибольшим положит, числом, представляет простую двоичную прогрессию и может быть сформирована с помощью двоичных счетчиков. Информацию о знаке здесь также несет старший разряд, но нуль становится однозначным. Смещенный код используется в АЦП и ЦАП (преобразователях), однако он еще неудобен для выполнения вычислений.
Арифметика в дополнительном коде.
Арифметические операции в дополнительном коде выполняются довольно просто. Чтобы получить сумму двух чисел, достаточно сложить соответствующие разряды (с учетом переноса), напримерЧтобы вычесть
Умножение в дополнительном коде выполняется также непосредственно. Попробуйте сделать следующие упражнения.
Упражнение 8.3.
Используя 3-разрядный дополнительный код, произведите двоичное умножение +2 на -3. Подсказка: ответ равен -6.Упражнение 8.4.
Покажите, что дополнительный код числа -5 равен +5.Дополнительный код благодаря естественности вычислений в нем повсеместно используется в ЭВМ для выполнения арифметических операций над целыми числами (но следует отметить, что числа с «плавающей запятой» обычно используются в знаковеличинной форме, называемой знак-порядок-мантисса).
Код ГРЕЯ.
Код, рассматриваемый ниже, используется в механических шифраторах угла поворота вала, а также в других устройствах. Он носит название кода Грея и обладает тем свойством, что при переходе от любого его состояния к следующему изменяется лишь один разряд (бит), что позволяет предотвратить ошибки, поскольку в данном случае при переходе между двумя закодированными значениями все разряды никак не могут измениться одновременно. Если бы использовался чисто двоичный код, то при переходе, например, от 7 к 8 на входе можно было бы получить число 15. Для формирования состояний кода Грея существует простое правило: начинать нужно с нулевого состояния, а затем для получения каждого следующего нужно выбрать самый младший разряд, изменение которого приводит к образованию нового состояния, и взять его инверсное значение.0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
Коды Грея могут содержать любое число разрядов. Они применяются при «параллельном кодировании» — методе быстродействующего аналого-цифрового преобразования (будет рассмотрен ниже). В следующем разделе мы покажем взаимные соответствия между кодом Грея и двоичным кодом.