Код «два из пяти» — это код с постоянным весом , который обеспечивает ровно десять возможных комбинаций двух битов и, таким образом, используется для представления десятичных цифр с использованием пяти битов . [1] Каждому биту назначается вес, так что сумма установленных битов равна требуемому значению, за исключением нуля.
Согласно Федеральному стандарту 1037C :
Веса дают уникальную кодировку для большинства цифр, но допускают две кодировки для 3: 0+3 или 10010 и 1+2 или 01100. Первая используется для кодирования цифры 3, а вторая — для представления непредставимого иным образом нуля.
Компьютеры IBM 7070 , IBM 7072 и IBM 7074 использовали этот код для представления каждой из десяти десятичных цифр в машинном слове, хотя они нумеровали позиции битов 0-1-2-3-4, а не весами. Каждое слово также имело флаг знака, закодированный с использованием кода «два из трех», который мог быть A Alphanumeric, − Minus или + Plus. При копировании в цифру три бита помещались в позиции битов 0-3-4. (Таким образом, производя числовые значения 3, 6 и 9 соответственно.)
Вариантом является штрихкод Почтовой службы США POSTNET , используемый для представления почтового индекса для автоматизированного оборудования сортировки и маршрутизации почты. Он использует две высокие полосы в качестве единиц и три короткие полосы в качестве нулей. Здесь веса, назначенные позициям бит, составляют 7-4-2-1-0. Опять же, ноль кодируется особым образом, с использованием комбинации 7+4 (двоичное 11000), которая естественным образом кодирует 11. Этот метод также использовался в североамериканских телефонных многочастотных и перекрестных коммутационных системах. [3]
Метод почтового буквенно-цифрового кодирования USPS (PLANET) использует те же значения веса, но с противоположным соотношением высоты штрихов.
Штрих-код Code 39 использует веса 1-2-4-7-0 (т.е. LSB первым, бит четности последним) для ширины своих полос, но он также кодирует два бита дополнительной информации в промежутках между полосами. Интервал || ||| используется для цифр.
В следующей таблице представлены десятичные цифры от 0 до 9 в различных системах кодирования «два из пяти»:
Требование установки ровно двух битов является строго более строгим, чем проверка четности ; как и все коды с постоянным весом , код «два из пяти» может обнаружить не только любую однобитовую ошибку, но и любую однонаправленную ошибку — случаи, в которых все отдельные битовые ошибки относятся к одному типу (все 0→1 или все 1→0).