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.
See Also