UPC-E is the short form representation of a UPC-A number. It
reduces the data length from 12 digits to 6 digits by compressing the extra
zeros. It is suited for identifying products in small packages.

A UPC-E number has 6 digits with number system either 0 or 1. The first 5
digits are calculated based on a conversion algorithm described below. The
last digit is the check digit of the original UPC-A symbol.

## Conversion between UPC-A and UPC-E

Not all UPC-A numbers can be compressed to UPC-E. These codes who have a
corresponding UPC-E code must have at least 4 zeros. The rules are:

If the manufacturer code ends with 000, 100, or 200, the UPC-E code
consists of 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. Under this case, The product code must be 00000
and 00999.

If the manufacturer code ends with 00 but does not meet the #1
requirement, The UPC-E code consists of the first three characters of the
manufacturer code, the last two characters of the product code, followed
by digit “3”. The product code can only contain two digits(00000 to
00099).

If the manufacturer code ends in 0 but non of the above qualifies,
the UPC-E consists of the first four digits manufacturer code and the last digit of
the product code, followed by the digit “4”. The product code in this
case can only contain one digit(00000 to 00009).

If the manufacturer code ends with non-zero digit, the UPC-E code
consists of the manufacturer code and the last digit of the product code.
In this case the product case can only be one from 00005 to 00009 because
0 to 4 has been used for the above four cases.

You can use this web-based free utility to perform conversion.

The UPC-E check digit is the same check digit of its corresponding
UPC-A number. Therefore, to calculate the check digit of a UPC-E number,
first convert it to UPC-A, then calculate the check digit using the algorithm described in UPC-A specification.

A UPC-E symbol has the following structure:

Start guard bars, always with a pattern bar+space+bar.

Left halve, five digits calculated from the equivalent UPC number.

Check digit.

Stop guard bars, always with a pattern bar+space+bar.