Checksums are used to verify the correctness of data. Their use is usually in data transmission, or converting data from one form to another. A parity bit is a form of checksum error correction coding. The idea is that the whole unit of data can be identified by a single number, a checksum. And that if the checksum isn't right, it doesn't match and errors have occurred.
The simplest checksum is to add up the value of the individual bytes in the data. Given the data of "CAT", the ASCII values of the letters are 67 + 65 + 84 = 216 and the whole package might be given the notation "CAT(216)". So, if we received "CAS(216)", the ASCII values of these letters add up as 67 + 65 + 83 = 215. And, since 216 does not equal 215, we’d know that an error occurred somewhere along the way.
A simple sum of the characters can be fooled by switching the order but not the value of the data, e.g. "TAC" and "CAT" have the same checksum. So more sophisticated checksum methods have been developed which reduce (but never totally eliminate) the chance of incorrect data giving the correct checksum.
Many types of barcodes employ checksums. In several other types, checksums are optional. Clearly, those that incorporate checksums are more robust and reliable.
The UPC and EAN barcodes always append the checksum character to the barcode results regardless of the BarcodeAppendCheckSum property value. |
More advanced barcodes use an error correction system. This allows for reliable reading even if the code has been slightly damaged.
Barcodes with no checksum | Barcodes requiring a checksum | Barcodes with optional checksum | Barcodes with error correction |
Add2 Add5 Codabar DataLogic 2 of 5 Patch Code |
Code 93 Code 93 Extended IATA 2 of 5 EAN-128 EAN-13 EAN-8 GS1 DataBar Intelligent Mail PostNet Royal Post 4-State Barcode UPC-A UPC-E |
Code 32 Code 39 Code 39 Extended Industry 2 of 5 (Industrial 2 of 5) Interleaved 2 of 5 Inverted 2 of 5 BCD Matrix Matrix 2 of 5 |
Australian Post 4-State Barcode |