Een belangrijke toevoeging hieraan is nog het volgende: Je kan je streepjescode van links naar rechts in lezen, of vice versa! Maar hoe weet de scanner dat ?? Het is natuurlijk belangrijk dat te weten, want je wil bvb. 123 (de juiste code) niet als 321 gaan interpreteren!
De oplossing die gebruikt wordt is de volgende: (het duidelijkst bij EAN)
Zoals hierboven gezegd zie je steeds twee dunne streepjes: links, in 't midden en rechts. Die streepjes duiden het begin en einde van een blok aan. EAN bestaat dus uit 2 blokken, vlnr: 1e blok met landcode+fabricant en 2e blok met productID.
De scanner kan dus een EAN code inlezen als:
|| blok 1 || blok 2 || (dit is vlnr)
of als || 2 kolb || 1 kolb || (dit is vrnl)
(inderdaad, blok wordt klob als je inleest van rechts naar links)
Hoe vist de scanner nu uit of hij vlnr gelezen heeft dan wel vrnl?
Het antwoord zit hem in de code die een nummer krijgt.
Als je blok 1 beschouwdt, dan zal een cijfer 5 bvb. 0110001 zijn.
Maar voor diezelfde 5 in het 2e blok gebruikt men
inverse codering, nl. voor een 5 in het 2e blok wordt dat dan: 1001110.
Bij het opstellen van de code is er gewoon voor gezorgd dat
zowel de code als zijn inverse uniek zijn.
Dus: als de scanner een eerste nummer in inverse codering tegenkomt, weet hij dat hij de streepjescode zal inlezen als || 2 klob || 1 klob ||.
Wanneer hij eerst een niet-inverse codering tegenkomt, weet hij dat hij inleest als || blok 1 || blok 2||.
Dat principe van inverse codering kan je, als je goed kijkt naar de image wat hogerop, ook zelf vaststellen. (kijk bvb naar de 5, met 0110001 in het 1e blok, 1001110 in het 2e blok, 0=wit, 1=zwart)