First barcoding website from Romania!
Home | About Us | Solutions | Tutorials | Barcode Education | Biometric Education | Contact Us
Barcode Education » Code16K
Code 16K was developed by Ted Williams in 1989 to provide a simple to print and decode multiple row symbology. Williams also developed Code 128, and the structure of 16K is based on Code 128. Not coincidentally, 128 squared happened to equal 16,000 or 16K for short. Code 16K resolved an inherent problem with Code 49. Code 49's structure requires a large amount of memory for encoding and decoding tables and algorithms. 16K is a stacked symbology.

Each Code 16K symbol contains from 2 to 16 rows, with 5 ASCII characters per row. Additionally, up to 107 16-row symbols can be concatenated together to allow encoding of up to 8,025 ASCII characters, or 16,050 numeric digits. In the extended mode, the first three characters in each 16 row symbol defines the mode character, the order of the 16 row symbol in the block, and the total number of symbols in the block.

The code is a continuous, variable-length symbology that can encode the complete ASCII 128-character set. The minimum value of the x-dimension is 7.5 mils for a symbol to be read by an unknown reader. Minimum bar height is 8 times the x-dimension The maximum data density is 208 alphanumeric characters per square inch or 417 numeric digits per square inch when the symbol is printed at 7.5 mils. In the health care industry for example, a Code 16K symbol printed with a 7.5 mil x-dimension including a flag character, a 10 digit NCD number, a 5 digit expiration date, and a 10 alphanumeric lot code, would fit in a symbol measuring only .35 inches by .61 inches.

Code 16K symbols can be read by modified moving beam laser or CCD scanners. Rows can be scanned in any order. After the last row has been scanned, the bar code reader automatically puts the information in proper sequence. Labels can be printed by standard printing technologies.

Code 16k is interesting because it's essentially a lot of reverse-video Code128 rows stacked on top of one another, with some bearer bars, start/stop characters, a start symbol, padding, and check symbols thrown in.

Mode Starting Code Set Starting Shift Mode
0 A none
1 B none
2 C none
3 B FNC1
4 C FNC1
5 C none
6 C none
FNC1, or "function 1" means that the data following is to be interpreted as a UPC would be. 1SB and 2SB are "single-shift B" and "double shift B" meaning that the next or next 2 characters are from character set B, respectively. FNCs and Shifts are also defined in the character set.

A Code 16k block may contain up to 16 rows, separated by horizontal bearer bars. The top and bottom of the symbol have longer bearer bars to include a leading and trailing quiet zone. Each row has its own start and stop character and contains 5 symbols. PAD characters must be inserted to make a row contain 5 symbols if necessary.

There are 2 checksums at the end of the code, which are calculated by weighting the sum of the values of each character including the start character.

The first check symbol starts the weighting at 2, and the second starts weighting at 1. Next, take the modulo 107 of the sum. So if you had the character values 22, 10, 15, 20, the two checksums would be:
(2*22 + 3*10 + 4*15 + 5*20) % 107
(1*22 + 2*10 + 3*15 + 4*20) % 107

For more information visit

Privacy Policy | Terms of Use Copyright © Rosistem