Метод представления знаковых чисел
Смещенный двоичный код , [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]
Смотрите также
Ссылки
- ^ 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. ISBN 978-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. ISBN 3-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. [ нужная страница ]
- ^ Кафедра электротехники и компьютерных наук, Юго-Восточный Массачусетский университет , Северный Дартмут, Массачусетс, США (1988). Чен, Чи-хау (ред.). Справочник по обработке сигналов. Нью-Йорк, США: Marcel Dekker, Inc. / CRC Press . ISBN 0-8247-7956-8. Получено 2016-02-04 .
- ^ "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. ISBN 978-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 страницы)
- ^ Плоткин, Моррис (сентябрь 1960 г.). «Двоичные коды с указанным минимальным расстоянием». Труды IRE по теории информации . IT-6 (4): 445–450. doi :10.1109/TIT.1960.1057584. eISSN 2168-2712. ISSN 0096-1000. S2CID 40300278.(Примечание. Также опубликовано как отчет исследовательского отдела 51-20 Пенсильванского университета в январе 1951 г.)
- ^ abcde Браун, Дэвид Т. (сентябрь 1960 г.). «Обнаружение и исправление ошибок в двоичных кодах для арифметических операций». Труды IRE по электронным компьютерам . EC-9 (3): 333–337. doi :10.1109/TEC.1960.5219855. ISSN 0367-9950. S2CID 28263032.
- ^ 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 страницы)
Дальнейшее чтение
- 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. ISBN 0-333-26397-9.
[…] [мы] используем значение [n exponent], сдвинутое на половину двоичного диапазона числа. […] Эту специальную форму иногда называют смещенной exponent , поскольку она представляет собой обычное значение плюс константа. Некоторые авторы называют ее характеристикой, но этот термин не следует использовать, поскольку CDC и другие используют этот термин для мантиссы . Ее также называют представлением «избытка -», где, например, - равно 64 для 7-битной exponent (2 7−1 = 64). […]
- Savard, John JG (2018) [2006]. "Decimal Representations". quadibloc . Архивировано из оригинала 2018-07-16 . Получено 2018-07-16 .(Примечание. Упоминаются Избыток-3, Избыток-6, Избыток-11, Избыток-123.)
- Savard, John JG (2018) [2007]. "Chen-Ho Encoding and Densely Packed Decimal". quadibloc . Архивировано из оригинала 2018-07-03 . Получено 2018-07-16 .(Примечание. Упоминаются превышение-25, превышение-250.)
- Savard, John JG (2018) [2005]. "Форматы с плавающей точкой". quadibloc . Архивировано из оригинала 2018-07-03 . Получено 2018-07-16 .(Примечание. Упоминаются Избыток-32, Избыток-64, Избыток-128, Избыток-256, Избыток-976, Избыток-1023, Избыток-1024, Избыток-2048, Избыток-16384.)
- Savard, John JG (2018) [2005]. "Computer Arithmetic". quadibloc . Архивировано из оригинала 2018-07-16 . Получено 2018-07-16 .(Примечание. Упоминаются превышение-64, превышение-500, превышение-512, превышение-1024.)