|UPC-E is a variation of UPC-A which allows for a more compact barcode by eliminating "extra" zeros. Since the resulting UPC-E barcode is about half the size as an UPC-A barcode, UPC-E is generally used on products with very small packaging where a full UPC-A barcode couldn't reasonably fit.|
|UPC-E uses a rather convoluted, but quite effective, method of compressing out unnecessary zeros. Keep in mind that in UPC-A there are five characters for the manufacturer code and five characters for the product code. The trick is to reduce all 10 characters into just 6 characters. How?|
|CONVERTING A UPC-A CODE TO UPC-E|
UPC-E uses the "left-hand odd" and "left-hand even" encoding character sets from the EAN-13 encoding standard.
UPC-E doesn't have a check digit encoded explicity, rather the check digit is encoded in the parity of the other six characters. The check digit that is encoded is the check digit from the original UPC-A barcode.
Additionally, UPC-E may only be used if the number system is 0 or 1. The characters encoded are encoded with odd and even parity from the left-hand columns of the EAN-13 character formats in the table previously provided. The parity used for each character depends on the number system (0 or 1) and the check digit from the original UPC-A barcode.
|UPC-E PARITY ENCODING TABLE|
|An UPC-E barcode has the following physical structure:
* Left-hand guard bars, or start sentinel, encoded as 101.
* Six data characters, encoded from the parity table above.
* Right-hand guard bars, encoded as 010101 (a center-guard bar pattern with a trailing bar).
NOTE: The structure of a UPC-E barcode is identical to the left-half of a standard UPC-A barcode. The only difference is that the center-guard pattern is terminated immediately by a trailing bar and trailing quiet zone.
|For this example we will convert the UPC-A symbol "042100005264" to a UPC-E code. First, we break the UPC-A symbol into its components: Number system 0, manufacturer code 42100, product code 00526, check digit 4.
First, we make note of the fact that the number system is zero (0). We will thus use the first column of the parity encoding table. We also observe that the original UPC-A check digit was 4. Thus, consulting the table above, we see that our UPC-E barcode will be encoded with the parity "EOEEOO".
Next, we must determine how we're going to code this. We see that the manufacturer code ends in "100", so we can use the first encoding method: The first two characters of the manufacturer code, the last three characters of the product code, followed by the third character of the manufacturer code. That would be "425261". Those are the digits that we need to code using the parity pattern "EOEEOO".
1. LEFT GUARD BARS (always the same): 101.
2. 1st UPC-E DIGIT . Encoding with left-hand even parity, 0011101.
3. 2nd UPC-E DIGIT . Encoded with left-hand odd parity, 0010011.
4. 3rd UPC-E DIGIT . Encoded with left-hand even parity, 0111001.
5. 4th UPC-E DIGIT . Encoded with left-hand even parity, 0011011.
6. 5th UPC-E DIGIT . Encoded with left-hand odd parity, 0101111.
7. 6th UPC-E DIGIT . Encoded with left-hand odd parity, 0011001.
8. CENTAR GUARD BARS (always the same): 01010.
9. RIGHT GUARD BAR (always the same): 1.
Remember, a "1" represents a bar and a "0" represents a space. Thus if we convert this string of numbers to their graphical representation we end up with the following barcode:
|To the left of the barcode, the number "0" represents the number system code. The number "4" to the right of the barcode indicates the original UPC-A checksum digit. These two digits are printed as human-readable numbers, but are actually encoded in the parity of the other 6 numbers.
In order to see more clearly the construction of the barcode, the following graphic shows the exact same barcode but each character, or section, of the barcode is indicated by alternating colors. Above the barcode, in each colored section, is a number from 1 to 15, which corresponds to each of the "steps," or sections, described above. You may easily compare the 1-0 sequence of each step to the graphical representation below:
|CONVERTING A UPC-A CODE TO UPC-E|
If you have a 6-digt UPC-E code you may use the following logic to convert it back to UPC-A. The decision on which logic to use depends on the last digit of the UPC-E Code.
1. UPC-E code ends in 0, 1, or 2: The UPC-A code is determined by taking the first two digits of the UPC-E code, taking the last digit of the UPC-E code, adding four 0 digits, and then adding characters 3 through 5 from the UPC-E code.
2. UPC-E code ends in 3: The UPC-A code is determined by taking the first three digits of the UPC-E code, adding five 0 digits, then adding characters 4 and 5 from the UPC-E code.
3. UPC-E code ends in 4: The UPC-A code is determined by taking the first four digits of the UPC-E code, adding five 0 digits, then adding the fifth character from the UPC-E code.
4. UPC-E code ends in 5, 6, 7, 8, or 9: The UPC-A code is determined by taking the first give digits of the UPC-E code, adding four 0 digits, then adding the last character from the UPC-E code.