Превышение-3 , 3-избыток [1] [2] [3] или 10-избыток-3 двоичный код (часто сокращенно XS-3 , [4] 3XS [1] или X3 [5] [6] ), сдвинутый двоичный [7] или код Стибица [1] [2] [8] [9] (после Джорджа Стибица , [10], который построил счетную машину на основе реле в 1937 году [11] [12] ) является самодополнимым двоичным кодом. -кодированный десятичный (BCD) код и система счисления . Этопредвзятое представление . Код Excess-3 использовался, среди прочего, на некоторых старых компьютерах, а также в кассовых аппаратах и портативных электронных калькуляторах 1970-х годов.
Код Стибица | |
---|---|
Цифры | 4 [1] |
Треки | 4 [1] |
Значения цифр | 8 4 −2 −1 |
Вес (а) | 1..3 [1] |
Непрерывность | Нет [1] |
Циклический | Нет [1] |
Минимальное расстояние | 1 [1] |
Максимальное расстояние | 4 |
Резервирование | 0,7 |
Лексикография | 1 [1] |
Дополнение | 9 [1] |
Представление
Коды со смещением - это способ представления значений со сбалансированным количеством положительных и отрицательных чисел с использованием заранее заданного числа N в качестве значения смещения. Коды со смещением (и коды Грея ) - это невзвешенные коды. В коде превышения-3 числа представлены в виде десятичных цифр, и каждая цифра представлена четырьмя битами как цифровое значение плюс 3 («избыточная» сумма):
- Наименьшее двоичное число представляет наименьшее значение ( 0 - превышение ).
- Наибольшее двоичное число представляет наибольшее значение ( 2 N +1 - превышение - 1 ).
Десятичный | Превышение-3 | Стибиц | BCD 8-4-2-1 | Двоичный | Расширение 3 из 6 CCITT [13] [1] | Расширение Хэмминга 4 из 8 [1] |
---|---|---|---|---|---|---|
−3 | 0000 | псевдотетрада | N / A | N / A | N / A | N / A |
−2 | 0001 | псевдотетрада | ||||
−1 | 0010 | псевдотетрада | ||||
0 | 0011 | 0011 | 0000 | 0000 | … 10 | … 0011 |
1 | 0100 | 0100 | 0001 | 0001 | … 11 | … 1011 |
2 | 0101 | 0101 | 0010 | 0010 | … 10 | … 0101 |
3 | 0110 | 0110 | 0011 | 0011 | … 10 | … 0110 |
4 | 0111 | 0111 | 0100 | 0100 | … 00 | … 1000 |
5 | 1000 | 1000 | 0101 | 0101 | … 11 | … 0111 |
6 | 1001 | 1001 | 0110 | 0110 | … 10 | … 1001 |
7 | 1010 | 1010 | 0111 | 0111 | … 10 | … 1010 |
8 | 1011 | 1011 | 1000 | 1000 | … 00 | … 0100 |
9 | 1100 | 1100 | 1001 | 1001 | … 10 | … 1100 |
10 | 1101 | псевдотетрада | псевдотетрада | 1010 | N / A | N / A |
11 | 1110 | псевдотетрада | псевдотетрада | 1011 | ||
12 | 1111 | псевдотетрада | псевдотетрада | 1100 | ||
13 | N / A | N / A | псевдотетрада | 1101 | ||
14 | псевдотетрада | 1110 | ||||
15 | псевдотетрада | 1111 |
Чтобы закодировать такое число, как 127, нужно просто кодировать каждую из десятичных цифр, как указано выше, давая (0100, 0101, 1010).
В арифметике с превышением-3 используются алгоритмы, отличные от обычных беспристрастных двоично-десятичных или двоичных позиционных чисел. После сложения двух дополнительных трех цифр исходная сумма будет равна шести разрядам. Например, после сложения 1 (0100 сверх-3) и 2 (0101 сверх-3) сумма будет выглядеть как 6 (1001 сверх-3) вместо 3 (0110 сверх-3). Чтобы исправить эту проблему, после добавления двух цифр необходимо удалить дополнительное смещение путем вычитания двоичного 0011 (десятичное 3 в несмещенном двоичном формате), если результирующая цифра меньше десятичного 10, или вычитания двоичного 1101 (десятичного 13 в несмещенном двоичном формате). двоичный), если произошло переполнение (перенос). (В 4-битном двоичном формате вычитание двоичного 1101 эквивалентно сложению 0011 и наоборот.)
Мотивация
Основное преимущество кодирования с избытком-3 перед кодированием без смещения состоит в том, что десятичное число может быть дополнено девятками [1] (для вычитания) так же легко, как двоичное число может быть дополнено единицами : просто путем инвертирования всех битов. [1] Также, когда сумма двух дополнительных трех цифр больше 9, бит переноса 4-битного сумматора будет установлен в высокий уровень. Это работает, потому что после сложения двух цифр "лишнее" значение 6 дает сумму. Поскольку 4-битное целое число может содержать только значения от 0 до 15, превышение 6 означает, что любая сумма, превышающая 9, будет переполняться (производить перенос).
Еще одно преимущество состоит в том, что коды 0000 и 1111 не используются ни для каких цифр. Эти коды могут вызвать неисправность в памяти или основной линии передачи. Также сложнее записать нулевой шаблон на магнитный носитель. [1] [14] [11]
Пример
Пример преобразователя BCD 8-4-2-1 в избыток-3 в VHDL :
сущность bcd8421xs3 - это порт ( a : в std_logic ; b : в std_logic ; c : в std_logic ; d : в std_logic ; an : buffer std_logic ; bn : буфер std_logic ; сп : буфер std_logic ; dn : буфер std_logic ; ш : из std_logic ; х : из std_logic ; у : из std_logic ; z : out std_logic ); конечный объект bcd8421xs3 ;архитектура потоков данных из bcd8421xs3 является начать <= не ; bn <= не b ; сп <= не с ; dn <= не d ; w <= ( an и b и d ) или ( a и bn и cn ) или ( an и b и c и dn ); x <= ( an и bn и d ) или ( an и bn, и c и dn ), или ( an и b, и cn, и dn ), или ( a и bn, и cn и d ); y <= ( an и cn и dn ) или ( an и c и d ) или ( a и bn и cn и dn ); z <= ( an и dn ) или ( a и bn и cn и dn );конечная архитектура потока данных ; - из bcd8421xs3
Расширения
Расширение 3 из 6 | |
---|---|
Цифры | 6 [1] |
Треки | 6 [1] |
Вес (а) | 3 [1] |
Непрерывность | Нет [1] |
Циклический | Нет [1] |
Минимальное расстояние | 2 [1] |
Максимальное расстояние | 6 |
Лексикография | 1 [1] |
Дополнение | (9) [1] |
Расширение 4 из 8 | |
---|---|
Цифры | 8 [1] |
Треки | 8 [1] |
Вес (а) | 4 [1] |
Непрерывность | Нет [1] |
Циклический | Нет [1] |
Минимальное расстояние | 4 [1] |
Максимальное расстояние | 8 |
Лексикография | 1 [1] |
Дополнение | 9 [1] |
- Расширение кода 3 из 6: Код избытка 3 иногда также используется для передачи данных, а затем часто расширяется до 6-битного кода согласно CCITT GT 43 No. 1, где установлены 3 из 6 битов. [13] [1]
- Расширение кода 4 из 8: В качестве альтернативы коду приемопередатчика IBM [15] (который представляет собой код 4 из 8 с расстоянием Хэмминга 2) [1] также можно определить код 4 из 8. Расширение кода -8, превышающее -3, достигающее расстояния Хэмминга 4, если должны передаваться только десятичные цифры. [1]
Смотрите также
- Смещение двоичное , избыток- N , смещенное представление
- Превышение-128
- Превышение кода Грея
- Сдвинутый код Грея
- Код Грея
- код m-of-n
- Код Айкен
Рекомендации
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai Steinbuch, Karl W. , ed. (1962). Написано в Карлсруэ, Германия. Taschenbuch der Nachrichtenverarbeitung (на немецком языке) (1-е изд.). Берлин / Геттинген / Нью-Йорк: Springer-Verlag OHG . С. 71–73, 1081–1082. LCCN 62-14511 .
- ^ а б Steinbuch, Karl W .; Вебер, Вольфганг; Heinemann, Traute, eds. (1974) [1967]. Taschenbuch der Informatik - Band II - Struktur und Programmierung von EDV-Systemen . Taschenbuch der Nachrichtenverarbeitung (на немецком языке). 2 (3-е изд.). Берлин, Германия: Springer Verlag . С. 98–100. ISBN 3-540-06241-6. LCCN 73-80607 .
- ^ Ричардс, Ричард Колер (1955). Арифметические операции в цифровых компьютерах . Нью-Йорк, США: ван Ностранд . п. 182.
- ^ Каутц, Уильям Х. (июнь 1954 г.). «Оптимизированное кодирование данных для цифровых компьютеров» . Протокол Конвенции IRE 1954 г., Национальная конвенция, Часть 4: Электронные компьютеры и информационные технологии . Стэнфордский исследовательский институт, Стэнфорд, Калифорния, США: Институт радиоинженеров, Inc. 2 : 47–57. Сессия 19: Теория информации III - Скорость и вычисления . Проверено 22 мая 2020 . (11 страниц)
- ^ Шмид, Герман (1974). Десятичные вычисления (1-е изд.). Бингемтон, Нью-Йорк, США: John Wiley & Sons, Inc. стр. 11 . ISBN 0-471-76180-X. Проверено 3 января 2016 .
- ^ Шмид, Герман (1983) [1974]. Десятичные вычисления (1 (переиздание) изд.). Малабар, Флорида, США: Издательство Роберта Кригера. п. 11. ISBN 0-89874-318-4. Проверено 3 января 2016 .(NB. По крайней мере, некоторые партии этого переизданного издания были опечатками с дефектными страницами 115–146.)
- ^ Стибиц, Джордж Роберт ; Ларриви, Жюль А. (1957). Написано в Андерхилле, Вермонт, США. Математика и компьютеры (1-е изд.). Нью-Йорк, США / Торонто, Канада / Лондон, Великобритания: McGraw-Hill Book Company, Inc. стр. 105. LCCN 56-10331 . (10 + 228 стр.)
- ^ Доктер, Фолкерт; Штайнхауэр, Юрген (18.06.1973). Цифровая электроника . Техническая библиотека Philips (PTL) / Macmillan Education (Перепечатка 1-го английского издания). Эйндховен, Нидерланды: Macmillan Press Ltd. / Gloeilampenfabrieken NV Philips . С. 42, 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]. Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik . Philips Fachbücher (на немецком языке). I (исправленное и дополненное 5-е изд.). Гамбург, Германия: Deutsche Philips GmbH . стр. 48, 51, 53, 58, 61, 73. ISBN 3-87145-272-6. (xii + 327 + 3 страницы) (NB. Немецкое издание тома I было опубликовано в 1969, 1971, два выпуска в 1972 и 1975 годах. Том II был опубликован в 1970, 1972, 1973 и 1975 годах).
- ^ Стибиц, Джордж Роберт (1954-02-09) [1941-04-19]. «Комплексный компьютер» . Патент US2668661A . Проверено 24 мая 2020 . [1] (102 страницы)
- ^ а б Митке, Детлеф (2017) [2015]. "Binäre Codices" . Informations- und Kommunikationstechnik (на немецком языке). Берлин, Германия. Exzeß-3-Code mit Additions- und Subtraktionsverfahren. Архивировано 25 апреля 2017 года . Проверено 25 апреля 2017 .
- ^ Ричи, Дэвид (1986). Пионеры компьютеров . Нью-Йорк, США: Саймон и Шустер . п. 35 . ISBN 067152397X.
- ^ а б Международный консультативный комитет по телефонике и телеграфу (CCITT), Groupe de Travail 43 (1959-06-03). Вклад №1 . CCITT, GT 43 № 1.
- ^ Баше, Чарльз Дж .; Джексон, Питер Уорд; Mussell, Howard A .; Вингер, Уэйн Дэвид (январь 1956 г.). «Дизайн системы IBM Type 702». Труды Американского института инженеров-электриков, Часть I: Связь и электроника . 74 (6): 695–704. DOI : 10.1109 / TCE.1956.6372444 . S2CID 51666209 . Документ № 55-719.
- ^ IBM (июль 1957 г.). 65 Приемопередатчик данных / 66 Приемник данных для печати .