Code 11 only can encode numeric data(0 to 9),the dash symbol(-). It is also known as USD-8, was developed as a high-density numeric-only symbology. It is used primarily in labeling telecommunications equipment.Code 11 uses one or two weighted checksum digits. Normally if the length of the message is less than 10 characters, one checksum “C” is used. Otherwise both “C” and “K” are used.

Code 11 is a discrete symbology. Characters are separated by an inter-character gap which typically has the same width as the narrow element. The height of the bars must be at least 0.15 times of the symbol’s length or 0.25 inches, whichever is larger. The name derives from the way that the checksum digit is calculated. For details, read further to the checksum section. Although Code 11 is discrete, it is not self-checking because a single printing defect can transpose one character into another valid character.

Code 11 CheckSum Digits Calculation 

To calculate the optional checksum digit, follow the following steps:

  1. Start with the right-most digit in the message; assign the weight starting with 1. Move from the right to left, and increment the weight by one. A dash has a value of 10.
  2. Multiply the character value by the weight and add the result together.
  3. Divide the total result by 11. The remainder is the “C” checksum digit.
  4. If the length of the message is greater than 10, you have to calc the “K” digit as well.
  5. Start with the right most digit in the message (Now it should be “C” digit). Repeat the step 1. This time divide the result by 9. The remainder becomes the “K” checksum digit.


  1. A start character.

  2. Encoded Data.

  3. An optional ‘C’ check digit .
  4. An optional ‘K’ check digit .
  5. A stop character.




“Industrial 2 of 5” is another name of “Standard 2 of 5”, Standard 2 of 5 is a low-density numeric symbology that has been with us since the 1960s. It has been used in the photofinishing and warehouse sorting industries, as well as sequentially numbering airline tickets.

Check Digit Calculation

Standard 2 of 5 may include an optional modulo 10 check digit as the following step:

  1.   Start with the right-most digit in the message; mark the character with even and odd position. The right-most digit has the even position.
  2.  Sum all digits in the odd position.
  3. Sum all digits in the even position, and then multiply by 3.
  4. Add the result 2 and result 3.
  5. Divide the result of step 4 by 10, the check digit is the result equal to that 10 minus the remainder.

Code25 symbol Structure

  1. A start character
  2. Data encoded
  3. Optional Mod 10 check digit
  4. A stop character



Interleaved 2 of 5 is a higher-density numeric symbology based upon the Standard 2 of 5 symbology. It is used primarily in the distribution and warehouse industry.

Interleaved 2 of 5 encodes any even number of numeric characters in the widths (either narrow or wide) of the bars and spaces of the barcode. Unlike Standard 2 of 5, which only encodes information in the width of the bars, Interleaved 2 of 5 encodes data in the width of both the bars and spaces. This allows Interleaved 2 of 5 to achieve a somewhat higher density.

The symbology is called “interleaved” because the first numeric data is encoded in the first 5 bars while the second numeric data is encoded in the first 5 spaces that separate the first 5 bars. Thus the first 5 bars and spaces actually encode two characters. This is also why the barcode can only encode an even number of data elements.


Interleaved 2 of 5 is similar to Standard 2 of 5 in the sense that it may include an optional modulo 10 check digit. The process for calculating the check digit is the same in Interleaved 2 of 5 as it is in Standard 2 of 5. And, like Standard 2 of 5, the checksum digit is optional.


  1. Start character, encoded as 1010.
  2. Each pair of data characters is encoded.
  3. Stop character, encoded as 1101.



MSI was developed by the MSI Data Corporation, based on the original Plessey Code. MSI, also known as Modified Plessey, is used primarily to mark retail shelves for inventory control. MSI is a continuous, non-self-checking symbology. While the length of an MSI barcode can be of any length, a given application usually implements a fixed-length code.

MSI, and other symbologies based on Pulse-Width Modulation, offer no significant benefit over more modern symbologies. While it is not a bad idea to support MSI for legacy barcodes, most new applications do not choose MSI as their symbology of choice.


MSI uses one or two check digits, which may be calculated in a number of different ways. As such, it is really up to the software application to implement and check the check digit(s).

To calculate the modulo 10 checksum digit, use the following steps:

  1. Create a new number using every other digit from the original code such that the right-most digit of the new number is the right-most digit of the old number. For example, in the barcode above the data we encoded was “8052”. In this case, the “new number” is 02.
  2. Take the new number calculated in step 1 and multiply it by 2. In this case, 02 * 2 is 4.
  3. Add the digits of the value calculated in the previous step (4), and add it to the digits that were not used in step 1 to form the new number. In our example, this would be 4 + 8 + 5 = 17. The “4” comes from step 2, the 8 and 5 come from the “8052” and are the digits that weren’t used to form the new number in step 1. If the result from step 2 were, for example, 123, then we’d add 1 + 2 + 3 = 6 (plus the digits that weren’t used from step 1).
  4. Do a modulo 10 calculation on the result of step 3. In this case, 17 modulo 10 = 7.
  5. The check digit is the value which, added to the result in step 4, equals 10. In this case, we must add 3 to 7 to get 10-so the check digit is 3. This explains why the example barcode above has a trailing “3” on it.


  1. A start character which is a wide bar followed by a narrow space.
  2. Encoded Data.
  3. Checksum digit(s).
  4. A stop character, which is a narrow bar, a wide space, then a narrow bar.



Codabar was developed was developed in 1972 by Pitney Bowes, Inc. It is a discrete, self-checking symbology that may encode 16 different characters, plus an additional 4 start/stop characters. This symbology is used by U.S. blood banks, photo labs, and on FedEx airbills.

Since Codabar is self-checking, there is no established checksum digit. Should a specific application wish to implement a checksum digit for additional security, it is up to the implementer to define and handle same. However, keep in mind that other applications that read your barcode will interpret your checksum digit as part of the message itself.

A Codabar Barcode structure:

  1. One of four possible start characters (A, B, C, or D), encoded from the table below.
  2. A narrow, inter-character space.
  3. The data of the message, encoded from the table below, with a narrow inter-character space between each character.
  4. One of four possible stop characters (A, B, C, or D), encoded from the table below.