0% found this document useful (0 votes)
304 views4 pages

Check Digit: Multiple Errors, Such As Two Replacement Errors (12 34) Though, Typically, Double Errors Will

Check digits are computed algorithms used for error detection on identification numbers that are manually entered. A check digit consists of an extra digit added to the original number that is calculated based on the other digits. This allows for detection of simple errors like a single mistyped digit or swapped adjacent digits. More complex check digit algorithms can also detect transposition errors where digits are swapped but not adjacent. The choice of algorithm involves balancing the ability to catch errors with ease of implementation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
304 views4 pages

Check Digit: Multiple Errors, Such As Two Replacement Errors (12 34) Though, Typically, Double Errors Will

Check digits are computed algorithms used for error detection on identification numbers that are manually entered. A check digit consists of an extra digit added to the original number that is calculated based on the other digits. This allows for detection of simple errors like a single mistyped digit or swapped adjacent digits. More complex check digit algorithms can also detect transposition errors where digits are swapped but not adjacent. The choice of algorithm involves balancing the ability to catch errors with ease of implementation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

CHECK DIGIT

A check digit is a form of redundancy check used for error detection on identification numbers
(e.g. bank account numbers) which have been input manually. It is analogous to a binary parity
bit used to check for errors in computer-generated data. It consists of a single digit

(sometimes more than one) computed by an algorithm from the other digits (or letters) in the
sequence input.

With a check digit, one can detect simple errors in the input of a series of characters

(usually digits) such as a single mistyped digit or some permutations of two successive digits.

Check digit algorithms are generally designed to capture human transcription errors. In order of
complexity, these include the following:

 single digit errors, such as 1 → 2


 transposition errors, such as 12 → 21
 twin errors, such as 11 → 22
 jump transpositions errors, such as 132 → 231
 jump twin errors, such as 131 → 232
 phonetic errors, such as 60 → 16 ("sixty" to "sixteen")

In choosing a system, a high probability of catching errors is traded off against implementation
difficulty; simple check digit systems are easily understood and implemented by humans but do
not catch as many errors as complex ones, which require sophisticated programs to implement.

A desirable feature is that left-padding with zeros should not change the check digit. This allows
variable length digits to be used and the length to be changed.

If there is a single check digit added to the original number, the system will not always capture
multiple errors, such as two replacement errors (12 → 34) though, typically, double errors will
be caught 90% of the time (both changes would need to change the output by offsetting
amounts).

A very simple check digit method would be to take the sum of all digits (digital sum) modulo 10.
This would catch any single-digit error, as such an error would always change the sum, but does
not catch any transposition errors (switching two digits) as re-ordering does not change the
sum.

A slightly more complex method is to take the weighted sum of the digits, modulo 10, with
different weights for each number position.
To illustrate this, for example if the weights for a four digit number were 5, 3, 2, 7 and the
number to be coded was 4871, then one would take 5×4 + 3×8 + 2×7 + 7×1 = 65, i.e. 5 modulo
10, and the check digit would be 5, giving 48715.

Systems with weights of 1, 3, 7, or 9, with the weights on neighboring numbers being different,
are widely used: for example, 31 31 weights in UPC codes, 13 13 weights in EAN numbers

(GS1 algorithm), and the 371 371 371 weights used in United States bank routing transit
numbers. This system detects all single-digit errors and around 90% of transposition errors. 1, 3,
7, and 9 are used because they are coprime to 10, so changing any digit changes the check digit;
using a coefficient that is divisible by 2 or 5 would lose information (because
) and thus not catch some single-
digit errors. Using different weights on neighboring numbers means that most transpositions
change the check digit; however, because all weights differ by an even number, this does not
catch transpositions of two digits that differ by 5, (0 and 5, 1 and 6, 2 and 7, 3 and 8, 4 and 9),
since the 2 and 5 multiply to yield 10.

The ISBN-10 code instead uses modulo 11, which is prime, and all the number positions have
different weights . This system thus detects all single digit substitution and
transposition errors (including jump transpositions), but at the cost of the check digit possibly
being 10, represented by "X". (An alternative is simply to avoid using the serial numbers which
result in an "X" check digit.) ISBN-13 instead uses the GS1 algorithm used in EAN numbers.

More complicated algorithms include the Luhn algorithm (1954), which captures 98% of single
digit transposition errors (it does not detect 90 ↔ 09), while more sophisticated is the
Verhoeff algorithm (1969), which catches all single digit substitution and transposition errors,
and many (but not all) more complex errors. Similar is another abstract algebra-based method,
the Damm algorithm, that too detects all single-digit errors and all adjacent transposition
errors. These three methods use a single check digit and will therefore fail to capture around
10% of more complex errors. To reduce this failure rate, it is necessary to use more than one
check digit (for example, the modulo 97 check referred to below, which uses two check digits -
for the algorithm, see International Bank Account Number) and/or to use a wider range of
characters in the check digit, for example letters plus numbers.
Examples
UPC

The final digit of a Universal Product Code is a check digit computed as follows:

1. Add the digits (up to but not including the check digit) in the odd-numbered positions
(first, third, fifth, etc.) together and multiply by three.
2. Add the digits (up to but not including the check digit) in the even-numbered positions
(second, fourth, sixth, etc.) to the result.
3. Take the remainder of the result divided by 10 (modulo operation) and subtract this
from 10 to derive the check digit.

For instance, the UPC-A barcode for a box of tissues is "036000241457". The last digit is the
check digit "7", and if the other numbers are correct then the check digit calculation must
produce 7.

1. Add the odd number digits: 0+6+0+2+1+5 = 14


2. Multiply the result by 3: 14 × 3 = 42
3. Add the even number digits: 3+0+0+4+4 = 11
4. Add the two results together: 42 + 11 = 53
5. To calculate the check digit, take the remainder of (53 / 10), which is also known as

(53 modulo 10), and subtract from 10. Therefore, the check digit value is 7.

Another example: to calculate the check digit for the following food item "01010101010".

1. Add the odd number digits: 0+0+0+0+0+0 = 0


2. Multiply the result by 3: 0 x 3 = 0
3. Add the even number digits: 1+1+1+1+1 = 5
4. Add the two results together: 0 + 5 = 5
5. To calculate the check digit, take the remainder of (5 / 10), which is also known as (5
modulo 10), and subtract from 10 i.e. (10 - 5 modulo 10) = 5. Therefore, the check digit
value is 5.
6. If the remainder is 0, subtracting from 10 would give 10. In that case, use 0 as the check
digit.
ISBN 10

The final character of a ten digit International Standard Book Number is a check digit computed
so that multiplying each digit by its position in the number (counting from the right) and taking
the sum of these products modulo 11 is 0. The digit the farthest to the right (which is multiplied
by 1) is the check digit, chosen to make the sum correct. It may need to have the value 10,
which is represented as the letter X. For example, take the ISBN 0-201-53082-1: The sum of
products is 0×10 + 2×9 + 0×8 + 1×7 + 5×6 + 3×5 + 0×4 + 8×3 + 2×2 + 1×1 = 99 ≡ 0 (mod 11). So
the ISBN is valid. Note that positions can also be counted from left, in which case the check digit
is multiplied by 10, to check validity: 0×1 + 2×2 + 0×3 + 1×4 + 5×5 + 3×6 + 0×7 + 8×8 + 2×9 +
1×10 = 143 ≡ 0 (mod 11).

While this may seem more complicated than the first scheme, it can be validated simply by
adding all the products together then dividing by 11. The sum can be computed without any
multiplications by initializing two variables, t and sum, to 0 and repeatedly performing t = t + digit;
sum = sum + t; (which can be expressed in C as sum += t += digit;). If the final sum is a multiple of 11,
the ISBN is valid.

ISBN 13

ISBN 13 (in use January 2007) is equal to the EAN-13 code found underneath a book's barcode.
Its check digit is generated the same way as the UPC except that the even digits are multiplied
by 3 instead of the odd digits.

EAN (GLN,GTIN, EAN numbers administered by GS1)

EAN (European Article Number) check digits (administered by GS1) are calculated by summing
the odd position numbers and multiplying by 3 and then by adding the sum of the even position
numbers. Numbers are examined going from right to left, so the first odd position is the last
digit in the code. The final digit of the result is subtracted from 10 to calculate the check digit
(or left as-is if already zero). A GS1 check digit calculator and detailed documentation is online
at GS1's website.[4] Another official calculator page shows that the mechanism for GTIN-13 is
the same for Global Location Number/GLN.

See also
 Casting out nines, similar modular sum check
 Check bit, binary equivalent

Source : http://en.wikipedia.org/wiki/Check_digit

You might also like