Code 11 is a barcode symbology developed by Intermec in 1977, and it is used primarily in telecommunications. The symbol can encode any length string consisting of the digits 0–9 and the dash character (-). A twelfth code represents the start/stop character, commonly printed as "*". One or two modulo-11 check digit(s) can be included.

"0123452" encoded in Code 11

It is a discrete, binary symbology where each digit consists of three bars and two spaces; a single narrow space separates consecutive symbols. The width of a digit is not fixed; three digits (0, 9 and -) have one wide element, while the others have two wide elements.

The valid codes have one wide bar, and may have one additional wide element (bar or space).

Code 11 digits
Character Widths Barcode
0 00001 101011
1 10001 1101011
2 01001 1001011
3 11000 1100101
4 00101 1011011
5 10100 1101101
6 01100 1001101
7 00011 1010011
8 10010 1101001
9 10000 110101
- 00100 101101
Stop/Start 00110 1011001
Code 11 decoding
Wide
element
Wide bar
Left Middle Right
Left bar 9 5 1
Left space 3 6 2
Middle bar 5 - 4
Right space 8 * 7
Right bar 1 4 0

The decode table has 15 entries because the symbols with two wide bars (1, 4 and 5) are listed twice.

Assuming narrow elements are one unit wide and wide elements are two units, the average digit is 7.8 units. This is better than codes with a larger repertoire like Codabar (10 units) or Code 39 (11 units), but not quite as good as interleaved 2 of 5 (7 units). The non-binary symbology Code 128 uses 5.5 units per digit (11 units per digit pair).

edit