Смещенный двоичный код , [1] также называемый избыточным-K , [1] избыточным -N , избыточным-e , [2] [3] избыточным кодом или смещенным представлением , — это метод представления знаковых чисел , в котором знаковое число n представлено битовой комбинацией, соответствующей беззнаковому числу n + K , где K — смещающее значение или смещение . Стандарта для смещенного двоичного слова нет, но чаще всего K для n -битного двоичного слова равно K = 2 n −1 (например, смещение для четырехзначного двоичного числа будет равно 2 3 =8). Это приводит к тому, что минимальное отрицательное значение представлено всеми нулями, «нулевое» значение представлено 1 в старшем бите и нулем во всех остальных битах, а максимальное положительное значение представлено всеми единицами (удобно, что это то же самое, что и использование дополнения до двух , но с инвертированным старшим битом). Это также имеет следствие, что в логической операции сравнения получается тот же результат, что и в случае операции числового сравнения истинной формы, тогда как в двоичной нотации логическое сравнение будет согласовываться с операцией числового сравнения истинной формы тогда и только тогда, когда сравниваемые числа имеют одинаковый знак. В противном случае смысл сравнения будет инвертирован, и все отрицательные значения будут считаться большими, чем все положительные значения.
5-битный код Бодо, использовавшийся в ранних синхронных мультиплексных телеграфах, можно рассматривать как смещенный на 1 ( избыток-1 ) отраженный двоичный (код Грея) код .
Одним из исторически значимых примеров нотации offset-64 ( excess-64 ) была нотация с плавающей точкой (экспоненциальная) в поколениях компьютеров IBM System/360 и System/370. «Характеристика» (экспонента) имела форму семибитного числа extra-64 (старший бит того же байта содержал знак мантиссы ) . [4]
8-битная экспонента в двоичном формате Microsoft , формате с плавающей точкой, использовавшемся в различных языках программирования (в частности, в BASIC ) в 1970-х и 1980-х годах, была закодирована с использованием нотации offset-129 ( excess-129 ).
Стандарт IEEE для арифметики с плавающей точкой (IEEE 754) использует смещенную нотацию для экспоненциальной части в каждом из своих различных форматов точности . Однако необычно то, что вместо использования "excess 2 n −1 " он использует "excess 2 n −1 − 1" (т. е. избыток-15 , избыток-127 , избыток-1023 , избыток-16383 ), что означает, что инвертирование ведущего (старшего) бита экспоненты не преобразует экспоненту в правильную нотацию дополнения до двух.
Смещение двоичного кода часто используется в цифровой обработке сигналов (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 для преобразования в дополнение к двум. В специализированном оборудовании может быть проще принять бит как есть, но применить его значение в инвертированном значении.
Связанные коды
В этом разделе отсутствует информация об этих таблицах. Пожалуйста, расширьте раздел, чтобы включить эту информацию. Дополнительные сведения могут быть на странице обсуждения . ( Январь 2022 г. )
^ ab Chang, Angela; Chen, Yen; Delmas, Patrice (2006-03-07). "2.5.2: Представление данных: двоичное представление смещения (Excess-K)". COMPSCI 210S1T 2006 (PDF) . Department of Computer Science, The University of Auckland , NZ. стр. 18. Получено 2016-02-04 .
^ abc Доктер, Фолкерт; Штайнхауэр, Юрген (18 июня 1973 г.). Цифровая электроника. Техническая библиотека Philips (PTL) / Macmillan Education (переиздание 1-го изд. на английском языке). Эйндховен, Нидерланды: The Macmillan Press Ltd. / Gloeilampenfabrieken NV Philips . п. 44. дои : 10.1007/978-1-349-01417-0. ISBN978-1-349-01419-4. СБН333-13360-9. Получено 01.07.2018 .(270 страниц) (Примечание. Основано на переводе тома I двухтомного немецкого издания.)
^ abc Доктер, Фолкерт; Штайнхауэр, Юрген (1975) [1969]. «2.4.4.4. Exzeß-e-Kodes». Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (на немецком языке). Том. Я (улучшенное и дополненное 5-е изд.). Гамбург, Германия: Deutsche Philips GmbH . стр. 51, 53–54. ISBN3-87145-272-6.(xii+327+3 страницы) (Примечание. Немецкое издание тома I было опубликовано в 1969, 1971 годах, два издания в 1972 и 1975 годах. Том II был опубликован в 1970, 1972, 1973 и 1975 годах.)
^ IBM System/360 Principles of Operation Form A22-6821. Различные издания доступны в WWW. [ нужная страница ]
^ "Data Conversion Binary Code Formats" (PDF) . Intersil Corporation (опубликовано в 2000 г.). Май 1997 г. AN9657.1 . Получено 2016-02-04 .
^ аб Моргенштерн, Бодо (январь 1997 г.) [июль 1992 г.]. «10.5.3.5 Лишний электронный код». Электроника: Digitale Schaltungen und Systeme . Studium Technik (на немецком языке). Том. 3 (переработанное 2-е изд.). Фридрих Видег и Зон Верлагсгезельшафт мбХ . стр. 120–121. дои : 10.1007/978-3-322-85053-9. ISBN978-3-528-13366-5. Получено 2020-05-26 .(xviii+393 страницы)
^ abcdefgh Даймонд, Джозеф М. (апрель 1955 г.) [1954-11-12]. «Проверка кодов для цифровых компьютеров». Труды IRE . Переписка. 43 (4). Нью-Йорк, США: 483–490 [487–488]. doi :10.1109/JRPROC.1955.277858. eISSN 2162-6634. ISSN 0096-8390. Архивировано из оригинала 26.05.2020 . Получено 26.05.2020 .(2 страницы) (Примечание. Результаты, обсуждаемые в этом отчете, основаны на более раннем исследовании, проведенном Джозефом М. Даймондом и Моррисом Плоткиным в Школе инженерии Мура Пенсильванского университета в 1950–1951 годах по контракту с Burroughs Adding Machine Co. )
^ Аб Нудинг, Эрих (1 января 1959). «Ein Sicherheitscode für Fernschreibgeräte, die zur Ein- und Ausgabe an elektronischen Rechenmaschine verwendet werden». Zeitschrift für Angewandte Mathematik und Mechanik . Кляйне Миттейлунген (на немецком языке). 39 (5–6): 429. Бибкод : 1959ЗаММ...39..249Н. дои : 10.1002/zamm.19590390511.(1 страница)
^ ab Stibitz, George Robert (1954-02-09) [1941-04-19]. "Комплексный компьютер". Патент US2668661A . Получено 2020-05-24 .[1] (102 страницы)
^ abcde Браун, Дэвид Т. (сентябрь 1960 г.). «Обнаружение и исправление ошибок в двоичных кодах для арифметических операций». Труды IRE по электронным компьютерам . EC-9 (3): 333–337. doi :10.1109/TEC.1960.5219855. ISSN 0367-9950. S2CID 28263032.
Gosling, John B. (1980). "6.8.5 Exponent Representation". В Sumner, Frank H. (ред.). Design of Arithmetic Units for Digital Computers . Macmillan Computer Science Series (1-е изд.). Department of Computer Science, University of Manchester , Manchester, UK: The Macmillan Press Ltd. стр. 91, 137. ISBN0-333-26397-9. […] [мы] используем значение [n exponent], сдвинутое на половину двоичного диапазона числа. […] Эту специальную форму иногда называют смещенной exponent , поскольку она представляет собой обычное значение плюс константа. Некоторые авторы называют ее характеристикой, но этот термин не следует использовать, поскольку CDC и другие используют этот термин для мантиссы . Ее также называют представлением «избытка -», где, например, - равно 64 для 7-битной exponent (2 7−1 = 64). […]