stringtranslate.com

Смещение двоичного кода

Смещенный двоичный код , [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]

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

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

[2] [3] [7]

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

Ссылки

  1. ^ 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 .
  2. ^ abc Доктер, Фолкерт; Штайнхауэр, Юрген (18 июня 1973 г.). Цифровая электроника. Техническая библиотека Philips (PTL) / Macmillan Education (переиздание 1-го изд. на английском языке). Эйндховен, Нидерланды: The Macmillan Press Ltd. / Gloeilampenfabrieken NV Philips . п. 44. дои : 10.1007/978-1-349-01417-0. ISBN 978-1-349-01419-4. СБН 333-13360-9. Получено 01.07.2018 .(270 страниц) (Примечание. Основано на переводе тома I двухтомного немецкого издания.)
  3. ^ 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. ISBN 3-87145-272-6.(xii+327+3 страницы) (Примечание. Немецкое издание тома I было опубликовано в 1969, 1971 годах, два издания в 1972 и 1975 годах. Том II был опубликован в 1970, 1972, 1973 и 1975 годах.)
  4. ^ IBM System/360 Principles of Operation Form A22-6821. Различные издания доступны в WWW. [ нужная страница ]
  5. ^ Кафедра электротехники и компьютерных наук, Юго-Восточный Массачусетский университет , Северный Дартмут, Массачусетс, США (1988). Чен, Чи-хау (ред.). Справочник по обработке сигналов. Нью-Йорк, США: Marcel Dekker, Inc. / CRC Press . ISBN 0-8247-7956-8. Получено 2016-02-04 .
  6. ^ "Data Conversion Binary Code Formats" (PDF) . Intersil Corporation (опубликовано в 2000 г.). Май 1997 г. AN9657.1 . Получено 2016-02-04 .
  7. ^ аб Моргенштерн, Бодо (январь 1997 г.) [июль 1992 г.]. «10.5.3.5 Лишний электронный код». Электроника: Digitale Schaltungen und Systeme . Studium Technik (на немецком языке). Том. 3 (переработанное 2-е изд.). Фридрих Видег и Зон Верлагсгезельшафт мбХ . стр. 120–121. дои : 10.1007/978-3-322-85053-9. ISBN 978-3-528-13366-5. Получено 2020-05-26 .(xviii+393 страницы)
  8. ^ 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. )
  9. ^ Аб Нудинг, Эрих (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 страница)
  10. ^ ab Stibitz, George Robert (1954-02-09) [1941-04-19]. "Комплексный компьютер". Патент US2668661A . Получено 2020-05-24 .[1] (102 страницы)
  11. ^ Плоткин, Моррис (сентябрь 1960 г.). «Двоичные коды с указанным минимальным расстоянием». Труды IRE по теории информации . IT-6 (4): 445–450. doi :10.1109/TIT.1960.1057584. eISSN  2168-2712. ISSN  0096-1000. S2CID  40300278.(Примечание. Также опубликовано как отчет исследовательского отдела 51-20 Пенсильванского университета в январе 1951 г.)
  12. ^ abcde Браун, Дэвид Т. (сентябрь 1960 г.). «Обнаружение и исправление ошибок в двоичных кодах для арифметических операций». Труды IRE по электронным компьютерам . EC-9 (3): 333–337. doi :10.1109/TEC.1960.5219855. ISSN  0367-9950. S2CID  28263032.
  13. ^ abcde Peterson, William Wesley ; Weldon, Jr., Edward J. (1972) [февраль 1971, 1961]. "15.3 Арифметические коды / 15.6 Самодополняющиеся коды AN + B ". Написано в Гонолулу, Гавайи. Коды с исправлением ошибок (2-е изд.). Кембридж, Массачусетс, США: Массачусетский технологический институт ( Издательство MIT ). стр. 454–456, 460–461 [456, 461]. ISBN 0-262-16-039-0. LCCN  76-122262.(xii+560+4 страницы)

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