Koodijoukot A, B ja C
Code 128 vaihtaa kolmen koodijoukon välillä sovittaakseen erilaista dataa tehokkaasti. Joukko A kattaa isot kirjaimet, numerot ja ohjausmerkit; joukko B kattaa isot ja pienet kirjaimet, numerot ja välimerkit; joukko C pakkaa kaksi numeroa jokaiseen symbolimerkkiin, mikä tekee pitkistä luvuista erittäin tiiviitä.
Jokainen symbolimerkki on 11 moduulia leveä ja koostuu 3 palkista ja 3 välistä, ja lopetuskuvio on 13 moduulia. Koodaaja voi vaihtaa joukkoa kesken viivakoodin pitääkseen sen mahdollisimman lyhyenä.
Tarkistusmerkki
Jokainen Code 128 -viivakoodi päättyy pakolliseen tarkistusmerkkiin. Se lasketaan lisäämällä aloitusmerkin arvo jokaisen datamerkin arvon ja sen paikan tulojen summaan, ja ottamalla jakojäännös jaettaessa luvulla 103. Tarkistusmerkkiä ei näytetä ihmisen luettavassa tekstissä.
GS1-128 logistiikassa
GS1-128 on Code 128, jossa on FNC1-merkki aloituksen jälkeen, mikä merkitsee sisällön GS1-sovellustunnisteiksi. Se on lähetys- ja lavaetikettien vakiolineaarinen viivakoodi, jossa on usein SSCC (sovellustunniste 00) sekä GTIN-tunnisteita, eränumeroita ja päivämääriä.
Code 128 on määritelty standardissa ISO/IEC 15417, ja sitä käytetään laajasti lähetyksissä, varastoinnissa ja sisäisissä etiketeissä.