✔ 最佳答案
條碼有很多不同的編碼方法,請到
http://en.wikipedia.org/wiki/Barcode 參考。
圖中的條碼是採用 EAN 13 的編碼方法,詳細的解碼方法可到這網站
http://www.cut-the-knot.org/do_you_know/BarcodeEncoding.shtml#EAN13
EAN 13 的編碼是由是最左的頭一個數字及左面的一組 6 個數字(左組)及右面的一組 6 個數字(右組)組成。
你可以看到頭一數字上面是沒有線條,但與左組之間有兩條較長的線分隔,左組每個數字上面有兩條黑線,這兩黑線及白間的濶度便組成了這個數字的編碼了,左組及右組亦有兩條長線分隔,右組每個數字上面也有兩條黑線,最後,右組的右面有有兩條長線作為完結。
左組及右組數字上面黑線及白間可以有 4 種的濶度 ,讓我們以 b bb bbb bbbb 代表最幼,中幼,中粗及最粗的黑線,及以 o oo ooo oooo 代表白間。
左組數字有兩種不同的編碼:
odd 編碼
0 = ooo bb o b
1 = oo bb oo b
2 = oo b oo bb
3 = o bbbb o b
4 = o b ooo bb
5 = o bb ooo b
6 = o b o bbbb
7 = o bbb o bb
8 = o bb o bbb
9 = ooo b o bb
even 編碼
0 = o b oo bbb
1 = o bb oo bb
2 = oo bb o bb
3 = o b oooo b
4 = oo bbb o b
5 = o bbb oo b
6 = oooo b o b
7 = oo b ooo b
8 = ooo b oo b
9 = oo b o bbb
至於何時用 odd 或 even 編碼便取決用條碼最左面第一個數字:(o=odd, e=even)
0 = o o o o o o
1 = o o e o e e
2 = o o e e o e
3 = o o e e e o
4 = o e o o e e
5 = o e e o o e
6 = o e e e o o
7 = o e o e o e
8 = o e o e e o
9 = o e e o e o
例如,圖中的條碼最左第一個數字是 9,所以,左組的 6 個數字的編碼方法是 o e e o e o,即是,第一個數字用 odd ,第二個數字用 even ,第三個用 even ,第四個數字用 odd ,第五個數字用 even ,第六個用 odd。所以可以看見左面一組 787560 的編碼為
7 = o bbb o bb
8 = ooo b oo b
7 = oo b ooo b
5 = o bb ooo b
6 = oooo b o b
0 = ooo bb o b
而右組只得一種編碼
0 = bbb oo b o
1 = bb oo bb o
2 = bb o bb oo
3 = b oooo b o
4 = b o bbb oo
5 = b oo bbb o
6 = b o b oooo
7 = b ooo b oo
8 = b oo b ooo
9 = bbb o b oo
情況跟左組差不多,不再詳述了。