The Number 666

in UPC bar-codes



To see the 666 sequence in a UPC bar-code, find a retail item with at least one 6 in the number below the bar-code. The more 6s the better. There are two types of UPC bar-codes. There is the longer 12 digit version and the shorter six digit version. Find a long version with at least one 6 in it first. We will come back to the short version in a bit. For demonstration purposes, I will use the bar-code from a box of General Mills Chex bars below because it has several sixes in it. (Please note that this is not implying anything negative concerning General Mills. All retail items have a similar bar-code.)  

UPC bar-code is made of varying widths of bars and spaces. Both bars and spaces have values that the scanning computer reads. There are four different widths of both bars and spaces. They can be valued as: 

1 for the narrowest bar and space
2 for the medium-narrow bars and spaces
3 for the medium-wide bars and spaces
4 for the widest bars and spaces 

Each number below the bar-code has four bars assigned to it, 2 black, and 2 white bars. Also notice that the bar-code is divided down the middle into two parts. The numbers on the left side have correlating bars in a white-black-white-black order, and the numbers on the right have correlating bars in the opposite black-white-black-white order. Each number is allotted bar space of 7 widths. So the total of each number's four corresponding bars will always add up to 7 widths. The bar width values for each number are:

0 = 3-2-1-1
1 = 2-2-2-1
2 = 2-1-2-2
3 = 1-4-1-1
4 = 1-1-3-2
5 = 1-2-3-1
6 = 1-1-1-4
7 = 1-3-1-2
8 = 1-2-1-3
9 = 3-1-1-2

The last bar for each number (as given in red) is a filler bar that makes up the difference for the necessary total 7 value for each number, and it is used by the scanner to establish direction of read. Its main purpose is to establish the direction in which the previous three bars are to be read. Only three bars make up the actual number. Without the fourth, the computer wouldn't know which direction to read the three. It wouldn't know the difference say between a 0 and a 5, or a 4 and a 9. But notice that if you read the sequences of each number's four bars backwards, starting with the red number, there is no other sequence like it. For instance, the backwards sequence of 0 is 1-1-2-3. That sequence cannot be found in the other nine sequences. The same can be said for every sequence.

The first thing a scanner must do before it can decipher the code is establish the value of 1. As the scanning laser sweeps back and forth across the bars it measures the amount of time it takes to cross each bar. It knows that the first three bars on each end and the middle three bars always have a value of 1. These are called the guard bars. From these guard bars the computer can mathematically calculate the values of the other bars by the amount of time it takes to cross them. After determining the 1-4 values of each bar, the computer looks to divide the values into groups of 4 bars who's values total 7.   Notice in the picture below that the amount of space allotted for each number is the same. 

Once the computer has divided up the bars into groups of four bars it sweeps the sequences of each group in both directions and determines which direction to read the bars. Remember, the sequences can go in only one direction thanks to the fourth bar. After establishing the direction of read, the computer throws out the fourth bar and reads the first three bars and assigns them the appropriate number. For example, when the computer sees within a block of seven the bar sequence of 3-1-2-1 it knows that number doesn't exist and turns it around to 1-2-1-3 which it immediately recognizes. It then drops the 3 and sees 1-2-1 and knows that this is the sequence for the number 8.  And the computer makes all of these calculations in the blink of an eye. 

So there are really only three bars that make up each number. Now lets look at the bar sequence for the number 6. From the table above it can be seen to be the sequence of 1-1-1. Now take a look at any bar-code that has a 6 in it. Notice that above every 6 there is always a bar sequence of 1-1-1 (three of the narrowest bars together). If the 6 is on the left half of the code, the 1-1-1 sequence will always be white-black-white. If it is on the right it will always be black-white-black. Now take a look at the groups of three guard bars at each end and right in the middle of the code. Notice the three in the middle descend into the numerical code to divide it in two. These bars have no corresponding number below them. It is not necessary to print numbers for them because they are identical in every retail bar-code. Remember, these are the bars are that the scanner first looks for to establish the value of 1 bar width. Notice that these guard bars are always the sequence 1-1-1 which is the sequence for the number 6! In the picture below, I have marked every 6 with a block of red above the corresponding bars. 

Imagine that! The first thing a scanner looks for when reading a retail bar code is the number 666! Only after finding this number can it go on to read the rest of the code! There is a somewhat rare shorter version of retail bar-code that is basically half the length of the usual bar-code. In these codes, two 6s are always together on the right end of the code in a 1-1-1-1-1-1sequence. This sequence always starts with a white bar so it ends in black.

 Now take a look at as many UPC bar-codes as you like, and every time, you will see the 666 hidden in it! 


Input                   Return to Messiah2               Return to Outline