Смещение двоичный , [1] также упоминаются как избыточные-K , [1] excess- Н , избыток-е , [2] [3] избыточный код или смещено представление , является способом подписанного представления чисел , где число со знаком п является представлен битовой комбинацией, соответствующей беззнаковому числу n + K , где K является значением смещения или смещением . Не существует стандарта для двоичного смещения, но чаще всего K для n-битовое двоичное слово K = 2 n -1 (например, смещение для четырехзначного двоичного числа будет 2 3 = 8). Следствием этого является то, что минимальное отрицательное значение представлено всеми нулями, «нулевое» значение представлено единицей в старшем разряде и нулем во всех других битах, а максимальное положительное значение представлено всеми единицами ( для удобства это то же самое, что и использование дополнения до двух, но с инвертированием самого старшего бита). Это также приводит к тому, что при операции логического сравнения получается тот же результат, что и при операции числового сравнения истинной формы, тогда как в нотации дополнения до двух логическое сравнение согласуется с операцией числового сравнения истинной формы тогда и только тогда, когда числа сравниваемые имеют одинаковый знак. В противном случае смысл сравнения будет инвертирован, и все отрицательные значения будут считаться большими, чем все положительные значения.
5-битный код Бодо, использовавшийся в ранних телеграфах с синхронным мультиплексированием, можно рассматривать как двоичный код Грея, отраженный смещением-1 ( избыток-1 ) .
Одним из исторически ярких примеров нотации смещения 64 ( превышения 64 ) была нотация с плавающей запятой (экспоненциальная) в компьютерах поколений IBM System / 360 и System / 370. «Характеристика» (показатель степени) имела форму семибитового числа избыточных 64 (старший бит того же байта содержал знак мантиссы ). [4]
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) микросхем униполярны, что означает, что они не могут обрабатывать биполярные сигналы (сигналы как с положительными, так и с отрицательными значениями). Простым решением этой проблемы является смещение аналоговых сигналов со смещением постоянного тока, равным половине диапазона аналого-цифрового и цифро-аналогового преобразователей. Результирующие цифровые данные затем оказываются в двоичном формате смещения. [5]
Большинство стандартных микросхем ЦП компьютера не могут напрямую обрабатывать двоичный формат смещения. Микросхемы ЦП обычно могут обрабатывать только целые числа со знаком и без знака, а также форматы значений с плавающей запятой. Эти микросхемы ЦП могут обрабатывать двоичные значения смещения несколькими способами. Данные можно рассматривать просто как целые числа без знака, требуя, чтобы программист имел дело с нулевым смещением в программном обеспечении. Данные также могут быть преобразованы в целочисленный формат со знаком (который ЦП может обрабатывать изначально) путем простого вычитания нулевого смещения. Вследствие того, что наиболее распространенное смещение для n- битного слова равно 2 n -1 , что означает, что первый бит инвертируется относительно дополнения до двух, нет необходимости в отдельном шаге вычитания, но можно просто инвертировать первый немного. Иногда это полезно для аппаратного упрощения, но может быть также удобно и для программного обеспечения.
Таблица двоичного смещения для четырех битов с дополнением до двух для сравнения: [6]
Десятичный | Смещение двоичное, 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 | n [8] | 0 | 4 | 1 | 8 4 2 1 | 1–4 | Нет | Нет | Нет | Нет |
Код нумерации [8] [9] | 3 п + 2 [8] | 2 | 5 | 3 | N / A | 2–5 | да | 9 | да | да |
Код Стибица [10] | n + 3 [8] | 3 | 4 | 1 | 8 4 −2 −1 | 1–4 | Нет | 9 | да | да |
Алмазный код [8] [11] | 27 п + 6 [8] [12] [13] | 6 | 8 | 27 | N / A | 3–8 | да | 9 | да | да |
25 п + 15 [12] [13] | 15 | 8 | 25 | N / A | 3+ | да | да | ? | да | |
23 п + 24 [12] [13] | 24 | 8 | 23 | N / A | 3+ | да | да | ? | да | |
19 п + 42 [12] [13] | 42 | 8 | 19 | N / A | 3–8 | да | 9 | да | да |
|
|
|
|
|
|
Смотрите также
- Знаковые представления чисел
- Двоичное число
- Превышение-3
- Превышение-128
- Экспонентное смещение
- Превышение кода Грея
- Дополнение
- Двоичный офсетный носитель
Рекомендации
- ^ а б Чанг, Анджела; Чен, Йен; Дельмас, Патрис (2007-03-07). «2.5.2: Представление данных: двоичное представление смещения (Excess-K)». COMPSCI 210S1T 2006 (PDF) . Департамент компьютерных наук Оклендского университета , Новая Зеландия. п. 18 . Проверено 4 февраля 2016 .
- ^ а б в Доктер, Фолкерт; Штайнхауэр, Юрген (18.06.1973). Цифровая электроника . Техническая библиотека Philips (PTL) / Macmillan Education (Перепечатка 1-го английского издания). Эйндховен, Нидерланды: Macmillan Press Ltd. / Gloeilampenfabrieken NV Philips . п. 44. DOI : 10.1007 / 978-1-349-01417-0 . ISBN 978-1-349-01419-4. SBN 333-13360-9. Проверено 1 июля 2018 . (270 страниц) (NB. Это основано на переводе тома I двухтомного немецкого издания.)
- ^ а б в Доктер, Фолкерт; Штайнхауэр, Юрген (1975) [1969]. «2.4.4.4. Exzeß-e-Kodes». Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (на немецком языке). I (исправленное и дополненное 5-е изд.). Гамбург, Германия: Deutsche Philips GmbH . С. 51, 53–54. ISBN 3-87145-272-6. (xii + 327 + 3 страницы) (NB. Немецкое издание тома I было опубликовано в 1969, 1971, два выпуска в 1972 и 1975 годах. Том II был опубликован в 1970, 1972, 1973 и 1975 годах).
- ^ IBM System / 360 Принципы работы Форма A22-6821. В Интернете доступны различные версии. [ требуется страница ]
- ^ Департамент электротехники и информатики, Юго-Восточный Массачусетский университет , Северный Дартмут, Массачусетс, США (1988). Чен, Чи-хау (ред.). Справочник по обработке сигналов . Нью-Йорк, США: Марсель Деккер, Inc. / CRC Press . ISBN 0-8247-7956-8. Проверено 4 февраля 2016 .
- ^ «Форматы двоичного кода преобразования данных» (PDF) . Intersil Corporation (опубликовано в 2000 г.). Май 1997. AN9657.1 . Проверено 4 февраля 2016 .
- ^ а б Моргенштерн, Бодо (январь 1997 г.) [июль 1992 г.]. «10.5.3.5 Превышение электронного кода» . Elektronik: Digitale Schaltungen und Systeme . Studium Technik (на немецком языке). 3 (перераб. 2-е изд.). Friedrich Vieweg и Sohn Verlagsgesellschaft mbH . С. 120–121. DOI : 10.1007 / 978-3-322-85053-9 . ISBN 978-3-528-13366-5. Проверено 26 мая 2020 . (xviii + 393 страницы)
- ^ Б с д е е г ч Даймонд, Джозеф М. (апрель 1955 г.) [1954-11-12]. «Проверочные коды для цифровых компьютеров» . Труды ИРЭ . Переписка. Нью-Йорк, США. 43 (4): 483–490 [487–488]. DOI : 10.1109 / JRPROC.1955.277858 . eISSN 2162-6634 . ISSN 0096-8390 . Архивировано 26 мая 2020 года . Проверено 26 мая 2020 .(2 страницы) (NB. Результаты, обсуждаемые в этом отчете, основаны на более раннем исследовании, проведенном Джозефом М. Даймондом и Моррисом Плоткиным в инженерной школе Мура , Университет Пенсильвании , в 1950–1951 годах по контракту с Burroughs Adding Machine Co. )
- ^ а б Нудинг, Эрих (1959-01-01). "Ein Sicherheitscode für Fernschreibgeräte, die zur Ein- und Ausgabe an elektronischen Rechenmaschine verwendet werden" . Zeitschrift für Angewandte Mathematik und Mechanik (ZAMM) . Kleine Mitteilungen (на немецком языке). 39 (5-6): 429. Bibcode : 1959ZaMM ... 39..249N . DOI : 10.1002 / zamm.19590390511 . (1 стр.)
- ^ а б Стибиц, Джордж Роберт (1954-02-09) [1941-04-19]. «Комплексный компьютер» . Патент US2668661A . Проверено 24 мая 2020 . [1] (102 страницы)
- ^ Плоткин, Моррис (сентябрь 1960). «Двоичные коды с заданным минимальным расстоянием». Сделки IRE по теории информации . ИТ-6 (4): 445–450. DOI : 10.1109 / TIT.1960.1057584 . eISSN 2168-2712 . ISSN 0096-1000 . S2CID 40300278 .(NB. Также опубликовано как Отчет 51-20 исследовательского отдела Пенсильванского университета в январе 1951 г.)
- ^ а б в г д Браун, Дэвид Т. (сентябрь 1960 г.). «Обнаружение ошибок и исправление двоичных кодов для арифметических операций». Операции IRE на электронных компьютерах . ИС-9 (3): 333–337. DOI : 10.1109 / TEC.1960.5219855 . ISSN 0367-9950 . S2CID 28263032 .
- ^ а б в г д Петерсон, Уильям Уэсли ; Велдон-младший, Эдвард Дж. (1972 г.) [февраль 1971 г., 1961 г.]. «15.3 Арифметические коды / 15.6 Самодополняющиеся коды AN + B ». Написано в Гонолулу, Гавайи. Коды исправления ошибок (2-е изд.). Кембридж, Массачусетс, США: Массачусетский технологический институт ( MIT Press ). С. 454–456, 460–461 [456, 461]. ISBN 0-262-16-039-0. LCCN 76-122262 . (xii + 560 + 4 страницы)
дальнейшее чтение
- Гослинг, Джон Б. (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.)