Смещение двоичное - Offset binary

Двоичное смещение , также называемое избытком-K , избытком- N , избытком-e , избыточным кодом или смещенным представлением , является методом представления числа со знаком , где число n со знаком представлено битовой комбинацией, соответствующей беззнаковому числу n + K , K - значение смещения или смещения . Не существует стандарта для двоичного смещения, но чаще всего K для n- битного двоичного слова составляет K  = 2 n -1 (например, смещение для четырехзначного двоичного числа будет 2 3 = 8). Следствием этого является то, что минимальное отрицательное значение представлено всеми нулями, "нулевое" значение представлено единицей в старшем разряде и нулем во всех других битах, а максимальное положительное значение представлено всеми единицами ( для удобства это то же самое, что и использование дополнения до двух, но с инвертированием самого старшего бита). Это также приводит к тому, что при операции логического сравнения получается тот же результат, что и при операции числового сравнения истинной формы, тогда как в нотации дополнения до двух логическое сравнение согласуется с операцией числового сравнения истинной формы тогда и только тогда, когда числа сравниваемые имеют одинаковый знак. В противном случае смысл сравнения будет инвертирован, и все отрицательные значения будут считаться большими, чем все положительные значения.

5-битный код Бодо, использовавшийся в ранних телеграфах с синхронным мультиплексированием, можно рассматривать как двоичный код Грея, отраженный смещением-1 ( избыток-1 ) .

Одним из исторически ярких примеров нотации смещения 64 ( превышения 64 ) была нотация с плавающей запятой (экспоненциальная) в компьютерах поколений IBM System / 360 и System / 370. «Характеристика» (показатель степени) имела форму семибитового числа избыточных 64 (старший бит того же байта содержал знак мантиссы ).

8-битная экспонента в двоичном формате Microsoft, формате с плавающей запятой, используемом в различных языках программирования (в частности, BASIC ) в 1970-х и 1980-х годах, была закодирована с использованием нотации смещения 129 ( избыток 129 ).

Стандарт IEEE для арифметики с плавающей точкой (IEEE 754) использует различные размеры экспонентов, но также использует смещение обозначения для формата каждой точности. Однако необычно, что вместо использования «превышение 2 n -1 » используется «превышение 2 n -1-1  » (т.е. превышение-15 , превышение-127 , превышение-1023 , превышение-16383 ), что означает, что инвертирование ведущего (высокий -order) бит экспоненты не преобразует экспоненту для исправления нотации дополнения до двух.

Двоичное смещение часто используется в цифровой обработке сигналов (DSP). Большинство аналогово-цифровых (A / D) и цифро-аналоговых (D / A) микросхем униполярны, что означает, что они не могут обрабатывать биполярные сигналы (сигналы как с положительными, так и с отрицательными значениями). Простым решением этой проблемы является смещение аналоговых сигналов со смещением постоянного тока, равным половине диапазона аналого-цифрового и цифро-аналогового преобразователей. Результирующие цифровые данные затем оказываются в двоичном формате смещения.

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

Таблица двоичного смещения для четырех битов с дополнением до двух для сравнения:

Десятичный Смещение двоичное,
K = 8
Два
дополнения
7 1111 0111
6 1110 0110
5 1101 0101
4 1100 0100
3 1011 0011
2 1010 0010
1 1001 0001
0 1000 0000
−1 0111 1111
−2 0110 1110
−3 0101 1101
−4 0100 1100
−5 0011 1011
−6 0010 1010
−7 0001 1001
−8 0000 1000

Двоичное смещение может быть преобразовано в двоичное дополнение путем инвертирования самого старшего бита. Например, с 8-битными значениями двоичное значение смещения может быть подвергнуто операции XOR с 0x80, чтобы преобразовать его в дополнение до двух. В специализированном оборудовании может быть проще принять бит как есть, но применить его значение в инвертированном значении.

Связанные коды

Сравнение кода
Код Тип Параметры Вес Расстояние Проверка Дополнение Группы по 5 человек Простое добавление
Смещение, k Ширина, n Фактор, q
Код 8421 п 0 4 1 8 4 2 1 1–4 Нет Нет Нет Нет
Код Nuding 3 п + 2 2 5 3 N / A 2–5 да 9 да да
Код Стибица п + 3 3 4 1 8 4  −2  −1 1–4 Нет 9 да да
Алмазный код 27 п + 6 6 8 27 N / A 3–8 да 9 да да
25 п + 15 15 8 25 N / A 3+ да да ? да
23 п + 24 24 8 23 N / A 3+ да да ? да
19 п + 42 42 8 19 N / A 3–8 да 9 да да
Десятичный
 
0
1
2
3
4
5
6
7
8
9
8421
4 3 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
Стибиц
4 3 2 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
Нудинг
5 4 3 2 1
0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 0 1 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
1 0 1 1 1
1 1 0 1 0
1 1 1 0 1
Алмаз
8 7 6 5 4 3 2 1
0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1
0 0 1 1 1 1 0 0
0 1 0 1 0 1 1 1
0 1 1 1 0 0 1 0
1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 0
1 1 0 0 0 0 1 1
1 1 0 1 1 1 1 0
1 1 1 1 1 0 0 1
19 п + 42
8 7 6 5 4 3 2 1
0 0 1 0 1 0 1 0
0 0 1 1 1 1 0 1
0 1 0 1 0 0 0 0
0 1 1 0 0 0 1 1
0 1 1 1 0 1 1 0
1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 0
1 0 1 0 1 1 1 1
1 1 0 0 0 0 1 0
1 1 0 1 0 1 0 1

Смотрите также

Рекомендации

дальнейшее чтение

  • Гослинг, Джон Б. (1980). «6.8.5 Экспонентное представление». В Самнер, Фрэнк Х. (ред.). Проектирование арифметических устройств для цифровых компьютеров . Серия Macmillan Computer Science (1-е изд.). Факультет компьютерных наук, Университет Манчестера , Манчестер, Великобритания: The Macmillan Press Ltd . С. 91, 137. ISBN 0-333-26397-9. […] [W] e использовать значение [n exponent], которое сдвигается на половину двоичного диапазона числа. […] Эту специальную форму иногда называют смещенной экспонентой , поскольку это обычное значение плюс константа. Некоторые авторы назвали это характеристикой, но этот термин использовать не следует, поскольку CDC и другие используют этот термин для мантиссы . Его также называют представлением «избыток -», где, например, - 64 для 7-битной экспоненты (2 7−1  = 64). […]
  • Савард, Джон Дж. Г. (2018) [2006]. «Десятичные представления» . квадиблок . Архивировано 16 июля 2018 года . Проверено 16 июля 2018 . (NB. Упоминает Превышение-3, Превышение-6, Превышение-11, Превышение-123.)
  • Савард, Джон Дж. Г. (2018) [2007]. «Кодирование Чен-Хо и плотно упакованная десятичная дробь» . квадиблок . Архивировано 3 июля 2018 года . Проверено 16 июля 2018 . (NB. Упоминается Превышение-25, Превышение-250.)
  • Савард, Джон Дж. Г. (2018) [2005]. «Форматы с плавающей точкой» . квадиблок . Архивировано 3 июля 2018 года . Проверено 16 июля 2018 . (Примечание. Упоминается Превышение-32, Избыток-64, Избыток-128, Избыток-256, Избыток-976, Превышение-1023, Превышение-1024, Избыток-2048, Превышение-16384.)
  • Савард, Джон Дж. Г. (2018) [2005]. «Компьютерная арифметика» . квадиблок . Архивировано 16 июля 2018 года . Проверено 16 июля 2018 . (NB. Упоминается Превышение-64, Превышение-500, Превышение-512, Превышение-1024.)