Los juegos de códigos A, B y C
Code 128 cambia entre tres juegos de códigos para ajustarse con eficiencia a distintos tipos de datos. El juego A abarca letras mayúsculas, dígitos y caracteres de control; el juego B abarca letras mayúsculas y minúsculas, dígitos y signos de puntuación; el juego C empaqueta dos dígitos en cada carácter del símbolo, lo que hace muy compactos los números largos.
Cada carácter del símbolo mide 11 módulos de ancho, con 3 barras y 3 espacios, y el patrón de parada mide 13 módulos. Un codificador puede cambiar de juego en mitad de un código de barras para que sea lo más corto posible.
El carácter de control
Todo código de barras Code 128 termina con un carácter de control obligatorio. Se calcula sumando el valor del carácter de inicio a la suma del valor de cada carácter de datos multiplicado por su posición, y tomando después el resto de dividir por 103. El carácter de control no aparece en el texto legible.
GS1-128 en la logística
GS1-128 es Code 128 con un carácter FNC1 tras el inicio, que marca el contenido como identificadores de aplicación GS1. Es el código de barras lineal estándar de las etiquetas de envío y de palés, donde suele llevar un SSCC (identificador de aplicación 00) junto con GTIN, números de lote y fechas.
Code 128 está especificado en ISO/IEC 15417 y se usa mucho en envíos, almacenes y etiquetas internas.