Barcodes are patterns of light and dark that may be scanned by an optical scanner and decoded into characters. A complete barcode is referred to as a barcode Symbol and the characters represented by the symbol are called the Code.
Most barcode symbols are made up of a series of parallel, adjacent bars and spaces, where the bars present a dark image and the spaces a light, reflecting image. In most circumstances a human-readable form of the code is printed directly under the barcode symbol - to allow for manual deciphering in case the symbol has been damaged.

Barcodes fall into two main categories - discrete and continuous. Discrete barcodes are those for which each character in the code translates into a character in the symbol, and each character in the symbol is separated from its neighbour by a gap containing no information. A continuous code has no inter-character gaps - each character starts with a bar and ends with a space, and the start of the following character’s first bar is immediately after that space. While continuous codes are more space efficient (i.e. no gaps), they do impose far greater tolerance requirements on barcode printing fonts and the printing process.
Some barcodes types support only numbers; others support uppercase letters and numbers, and some support the entire 128 characters of the ASCII character set (i.e. Characters 0 - 127).
Most barcode types employ a start character at the beginning of the symbol and a stop character at the end. In general these start and stop characters are not reproduced in human readable form under the barcode symbol. For example, in the symbol above the start and stop characters are * characters, but these do not appear under the symbol.
Most barcode types also employ one or more Check digits, which are used by the scanning equipment to ensure that the code has been read correctly. In some cases these check digits are optional, in others mandatory (i.e. the symbol will not scan if the check digit is omitted). Where present, check digits are usually the last characters in the code, just before the stop character, although they are not always shown in human readable form under the symbol.
A “self-checking” barcode symbology is one in which a printing defect cannot cause an incorrect character to be substituted for a misread character.
More: