- 三九碼簡介
- 39碼編碼方式
- 39碼檢查碼的計算
三九碼簡介
39碼是西元1974年發展出來的條碼系統,是一種可供使用者雙向掃瞄的分散式條碼,也就是說相臨兩資料碼之間,必須包含一個不具任何意義的空白(或細白,其邏輯值為0),且其具有支援文數字的能力,故應用較一般一維條碼廣泛,目前較主要利用於工業產品、商業資料及醫院用的保健資料,它的最大優點是碼數沒有強制的限定,可用大寫英文字母碼,且檢查碼可忽略不計。
標準的39碼是由起始安全空間、起始碼、資料碼、可忽略不計的檢查碼、終止安全空間及終止碼所構成(徐紹文,1985),以Z135+這個資料為例,其所編成的39碼如下所示:

39碼的結構
綜合來說, 39碼具有以下特性:
- 條碼的長度沒有限制,可隨著需求作彈性調整。但在規劃長度的大小時,應考慮條碼閱讀機所能允許的範圍,避免掃瞄時無法讀取完整的資料。
- 起始碼和終止碼必須固定為“ * ”字元。
- 允許條碼掃瞄器進行雙向的掃瞄處理。
- 由於39碼具有自我檢查能力,故檢查碼可有可無,不一定要設定。
- 條碼佔用的空間較大。
可表示的資料包含有:0~9的數字,A~Z的英文字母,以及“+”、“-”、“*”、“/”、“%”、“$”、“.”等特殊符號,再加上空白字元“
”,共計44組編碼,並可組合出128個ASCII CODE的字元符號,如下所示。
ASCII CODE字元符號與39碼對照表
返回页首
39碼編碼方式
三九碼的每一個字元編碼方式,都是藉由九條不同排列的線條編碼而得。可區分成如之四種類型:
39碼的字元編碼方式
(一) 英文字母部分
26個英文字母所對應的39碼邏輯值如所示。
39碼編碼對映表(英文字母部分)
|
字元
|
邏輯型態
|
字元
|
邏輯型態
|
|
A
|
110101001011
|
N
|
101011010011
|
|
B
|
101101001011
|
O
|
110101101001
|
|
C
|
110110100101
|
P
|
101101101001
|
|
D
|
101011001011
|
Q
|
101010110011
|
|
E
|
110101100101
|
R
|
110101011001
|
|
F
|
101101100101
|
S
|
101101011001
|
|
G
|
101010011011
|
T
|
101011011001
|
|
H
|
110101001101
|
U
|
110010101011
|
|
I
|
101101001101
|
V
|
100110101011
|
|
J
|
101011001101
|
W
|
110011010101
|
|
K
|
110101010011
|
X
|
100101101011
|
|
L
|
101101010011
|
Y
|
110010110101
|
|
M
|
110110101001
|
Z
|
100110110101
|
(二) 數字與特殊符號部分
39碼也可表示數字0~9以及特殊符號,其對應的邏輯值如所示。
39碼編碼對映表(英文字母部分)
|
字元
|
邏輯型態
|
字元
|
邏輯型態
|
|
0
|
101001101101
|
+
|
100101001001
|
|
1
|
110100101011
|
-
|
100101011011
|
|
2
|
101100101011
|
*
|
100101101101
|
|
3
|
110110010101
|
/
|
100100101001
|
|
4
|
101001101011
|
%
|
101001001001
|
|
5
|
110100110101
|
$
|
100100100101
|
|
6
|
101100110101
|
.
|
110010101101
|
|
7
|
101001011011
|
空白
|
100110101101
|
|
8
|
110100101101
|
|
|
|
9
|
101100101101
|
|
|
返回页首
39碼檢查碼的計算
39碼的檢查碼必須搭配「檢查碼相對值對照表」,如表所示,將查出的相對值累加後再除以43,得到的餘數再查出相對的編碼字元,即為檢查碼字元。
例如要算出 *S123$5* 這筆資料的檢查碼,其計算過程如下:
步驟1 參考檢查碼相對值對照表,找出編碼字元相對值
參考表,得到各編碼字元的相對值為:
S 的相對值為28; 1 的相對值為1;
2 的相對值為 2; 3 的相對值為3;
$ 的相對值為39 ; 5 的相對值為5。
步驟2 將各相對值累加除以43
累加相對值=28+1+2+3+39+5=78
78 ÷ 43=1….35
步驟3 查出與餘數相對的編碼字元
餘數=35,
查表 5.4,得到相對值=35 之編碼字元為 Z,
故 檢查碼=Z,得
含檢查碼在內的39碼,為:*S123$5Z*
39碼的檢查碼查詢表
返回页首
|