Un código dos de cinco es un código de peso constante que proporciona exactamente diez combinaciones posibles de dos bits y, por lo tanto, se utiliza para representar los dígitos decimales utilizando cinco bits . [1] A cada bit se le asigna un peso, de modo que los bits establecidos suman el valor deseado, con una excepción de cero.
Según la Norma Federal 1037C :
Los pesos dan una codificación única para la mayoría de los dígitos, pero permiten dos codificaciones para 3: 0+3 o 10010 y 1+2 o 01100. La primera se utiliza para codificar el dígito 3, y la segunda se utiliza para representar el cero, que de otro modo no se podría representar.
Las computadoras IBM 7070 , IBM 7072 e IBM 7074 usaban este código para representar cada uno de los diez dígitos decimales en una palabra de máquina, aunque numeraban las posiciones de bit 0-1-2-3-4, en lugar de con pesos. Cada palabra también tenía un indicador de signo, codificado usando un código de dos de tres, que podía ser A alfanumérico, − Menos o + Más. Cuando se copiaban a un dígito, los tres bits se colocaban en las posiciones de bit 0-3-4. (Produciendo así los valores numéricos 3, 6 y 9, respectivamente).
Una variante es el código de barras POSTNET del Servicio Postal de los Estados Unidos , que se utiliza para representar el código postal de los equipos de clasificación y distribución de correo automatizados. Este utiliza dos barras altas como unos y tres barras cortas como ceros. Aquí, los pesos asignados a las posiciones de los bits son 7-4-2-1-0. Nuevamente, el cero se codifica de manera especial, utilizando la combinación 7+4 (binario 11000) que codificaría naturalmente 11. Este método también se utilizó en los sistemas de conmutación de barras cruzadas y multifrecuencia de teléfonos norteamericanos . [3]
La técnica de codificación alfanumérica postal de USPS (PLANET) utiliza los mismos pesos, pero con la convención de altura de barra opuesta.
El código de barras Code 39 utiliza pesos 1-2-4-7-0 (es decir , primero el bit menos significativo y el bit de paridad al final) para el ancho de sus barras, pero también codifica dos bits de información adicional en el espacio entre las barras. El espacio || ||| se utiliza para los dígitos.
La siguiente tabla representa dígitos decimales del 0 al 9 en varios sistemas de códigos dos de cinco:
El requisito de que se establezcan exactamente dos bits es estrictamente más fuerte que una verificación de paridad ; como todos los códigos de peso constante , un código de dos de cinco puede detectar no solo cualquier error de un solo bit, sino cualquier error unidireccional : casos en los que todos los errores de bits individuales son de un solo tipo (todos 0→1 o todos 1→0).