Код с избытком 3
Код с избытком 3 (также известный как код XS-3, от англ. excess-3, или код с избытком три) — это позиционная система счисления и способ кодирования десятичных цифр, в котором каждая десятичная цифра представляется четырёхбитным двоичным кодом, равным значению этой цифры, увеличенному на 3. Относится к классу самодополняющихся кодов и исторически применялся в ранних электронно-вычислительных машинах для упрощения арифметических операций.
Принцип построения
Код с избытком 3 является разновидностью двоично-десятичного кода (BCD). В отличие от стандартного BCD-кода (8421), где десятичная цифра записывается её прямым двоичным представлением, в коде XS-3 к значению цифры прибавляется константа 3 (в двоичной системе — 0011). Таким образом, для цифры 0 используется код 0011, для цифры 1 — 0100, и так далее до цифры 9, которой соответствует код 1100.
Таблица соответствия
| Десятичная цифра | Код с избытком 3 |
|---|---|
| 0 | 0011 |
| 1 | 0100 |
| 2 | 0101 |
| 3 | 0110 |
| 4 | 0111 |
| 5 | 1000 |
| 6 | 1001 |
| 7 | 1010 |
| 8 | 1011 |
| 9 | 1100 |
Комбинации 0000, 0001, 0010, 1101, 1110 и 1111 в коде XS-3 не используются и считаются недопустимыми.
Свойства
Самодополняемость
Ключевым свойством кода с избытком 3 является самодополняемость (самодополнительность). Это означает, что код для десятичного дополнения цифры до 9 (то есть для значения 9 − x) получается путём инвертирования всех битов кода исходной цифры. Например, для цифры 2 (код 0101) её дополнение до 9 — цифра 7 (код 1010). Инвертирование 0101 даёт 1010, что соответствует коду цифры 7. Это свойство упрощает реализацию операции вычитания в десятичной арифметике, так как для получения дополнения числа не требуется сложных схем.
Симметрия относительно нуля
Коды цифр от 0 до 9 располагаются симметрично относительно середины диапазона четырёхбитных чисел (от 0011 до 1100). Это обеспечивает равномерное распределение единиц в кодах: каждая допустимая комбинация содержит ровно две единицы, за исключением кодов для цифр 0 (0011) и 9 (1100), которые содержат по две единицы, и кодов для цифр 4 (0111) и 5 (1000), содержащих три и одну единицу соответственно. В среднем количество единиц на один код равно двум, что близко к оптимальному для обнаружения одиночных ошибок.
Отсутствие нулевого кода
В отличие от стандартного BCD, код XS-3 не имеет комбинации 0000. Это означает, что при передаче данных по линиям связи или при обработке в регистрах нулевое значение никогда не представляется нулевым битовым шаблоном, что упрощает обнаружение обрывов линий или сбоев питания.
История
Код с избытком 3 был разработан в 1940-х годах и впервые применён в вычислительных машинах, таких как IBM 650 (1953 год) и UNIVAC I (1951 год). В этих машинах использовалась десятичная арифметика, и самодополняемость кода позволяла выполнять вычитание с помощью инвертирования и сложения, без необходимости в сложных схемах заимствования. В СССР код XS-3 применялся в некоторых моделях серийных электронных вычислительных машин, например, в машине «Урал-1» (1955 год), где он использовался для представления чисел в оперативной памяти на магнитном барабане.
С развитием полупроводниковой техники и переходом к двоичной арифметике код с избытком 3 утратил своё значение в универсальных компьютерах, однако продолжает использоваться в специализированных устройствах, таких как калькуляторы, кассовые аппараты и измерительные приборы, где требуется десятичная обработка данных.
Применение
Арифметические операции
Основное применение кода XS-3 — упрощение десятичного сложения и вычитания. При сложении двух чисел, представленных в коде с избытком 3, результат сначала получается в избыточной форме. Если сумма двух цифр превышает 9 (то есть код превышает 1100), необходимо выполнить коррекцию: вычесть 3 (0011) из результата. Если сумма меньше или равна 9, коррекция не требуется. При вычитании используется свойство самодополняемости: вычитаемое инвертируется, после чего выполняется сложение, и результат корректируется обратным добавлением 3.
Передача данных
В некоторых системах передачи данных код XS-3 применяется для обнаружения ошибок. Поскольку все допустимые комбинации содержат ровно две единицы, приёмник может проверять чётность количества единиц в каждом принятом полубайте. Одиночная ошибка (изменение одного бита) приведёт к появлению комбинации с одной или тремя единицами, что будет немедленно обнаружено.
Цифровые измерительные приборы
В мультиметрах и других цифровых измерительных приборах код XS-3 иногда используется для внутреннего представления результатов измерений, особенно в устройствах с жидкокристаллическими индикаторами, где требуется простое управление семисегментными индикаторами.
Сравнение с другими кодами
| Характеристика | Код 8421 (BCD) | Код с избытком 3 | Код Грея |
|---|---|---|---|
| Самодополняемость | Нет | Да | Нет |
| Количество используемых комбинаций | 10 | 10 | 10 |
| Среднее количество единиц | 2,0 | 2,0 | 2,0 |
| Простота сложения | Высокая | Средняя | Низкая |
| Обнаружение одиночных ошибок | Нет | Да | Нет |
Код с избытком 3 занимает промежуточное положение между стандартным BCD и кодом Грея: он сложнее в реализации сложения, чем BCD, но проще, чем код Грея, и при этом обладает свойством самодополняемости, отсутствующим у обоих.
Интересные факты
- В коде XS-3 максимальное десятичное число, которое можно представить четырьмя битами (9), имеет код 1100, а минимальное (0) — 0011. Таким образом, диапазон кодов смещён относительно нуля ровно на три единицы.
- Свойство самодополняемости кода XS-3 используется в некоторых алгоритмах проверки контрольных сумм для десятичных данных.
- В ранних компьютерах, таких как IBM 650, код с избытком 3 применялся не только для хранения чисел, но и для адресации ячеек памяти, что упрощало аппаратную реализацию арифметических операций с адресами.
Источники
- Хэмминг Р. В. Теория кодирования и теория информации. — М.: Радио и связь, 1983.
- Таненбаум Э. Архитектура компьютера. — 5-е изд. — СПб.: Питер, 2007.
- Берг А. И. Информация и кодирование. — М.: Наука, 1967.
- Документация по вычислительной машине IBM 650, IBM Corporation, 1953.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →