GS1 データバー

このページは、下記仕様書を理解するためにまとめたメモです。
元の仕様書に曖昧な点やどう見ても入力ミスと思われる値などがあったので正確でないところがあるかと思います。

GS1 General Specifications(GS1という組織が公開している仕様書)
JIS X 0509 情報技術-自動認識及びデータ取得技術-バーコードシンボル体系仕様-GS1 データバー

GS1という組織がRSS(Reduced Space Symbology)を改名してGS1データバーとした。

GS1データバーシンボル体系

キャラクタセット符号化コードチェックサムバーコードシンボルの名称多方向スキャナ
タイプ14つのシンボルキャラクタ
数字0-9
GTIN-14
14桁の数字
mod79GS1データバー標準型読み取りやすい
GS1データバー切詰型
GS1データバー二層型
GS1データバー標準二層型読み取りやすい
タイプ22つのシンボルキャラクタ
数字0-9
GTIN-14
13桁の数字
mod89GS1データバー限定型
タイプ3可変長シンボルキャラクタ
数字・特殊文字(FNC1)
英大小文字・記号20種類
GS1-128と同じコード
最大74桁の数字
最大41文字の英数字
mod211GS1データバー拡張型読み取りやすい
GS1データバー拡張多層型読み取りやすい

GS1データバー標準型のシンボル構造

左側
ガード
シンボル
キャラクター
1
(16,4)
左側
位置検出
パターン
シンボル
キャラクター
2
(15,4)
シンボル
キャラクター
4
(15,4)
右側
位置検出
パターン
シンボル
キャラクター
3
(16,4)
右側
ガード

左側ガード1モジュールのスペース + 1モジュールのバー
シンボルキャラクタ1(16,4)16モジュール(左から右に4つのスペースと4つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
左側位置検出パターン15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅
シンボルキャラクタ2(15,4)15モジュール(右から左に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
シンボルキャラクタ4(15,4)15モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
右側位置検出パターン15モジュール(右から左に3つのバーと2つのスペース)最後の2エレメントは1モジュール幅
シンボルキャラクタ3(16,4)16モジュール(右から左に4つのバーと4つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
右側ガード1モジュールのスペース + 1モジュールのバー

(01)20012345678909を表すGS1データバー標準型シンボル

・先頭の(01)はアプリケーション識別子で、シンボルには含まれないが、リーダからは送信される。
・最後の1桁の9は、GTIN-14のチェックデジットで、シンボルには含まれないが、リーダからは送信される。
・14桁のコードの最初の1桁は連結フラッグで0か1、その後の13桁はGTIN-14のチェックデジットを除いたもの。
・連結フラッグが1の場合は二次元コンポーネントが連結している。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の33倍以上必要。1モジュール=0.254mmなら高さ8.382mm以上
・シンボル幅は96モジュールで46のエレメント(スペースとバー)で構成
・位置検出パターンはチェックキャラクタ・セグメント識別子としても機能する。

シンボルキャラクタ

・シンボル値 = 左側キャラクタ対 X 4537077 + 右側キャラクタ対
・左側キャラクタ対 = シンボル値 div 4537077
・右側キャラクタ対 = シンボル値 mod 4537077
・キャラクタ対 = 外側キャラクタ X 1597 + 内側キャラクタ
・外側キャラクタ = キャラクタ対 div 1597
・内側キャラクタ = キャラクタ対 mod 1597
・キャラクタ1 = 左キャラクタ対 div 1597
・キャラクタ2 = 左キャラクタ対 mod 1597
・キャラクタ3 = 右キャラクタ対 div 1597
・キャラクタ4 = 右キャラクタ対 mod 1597

奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値
2.モジュール数
3.エレメント数
4.最大エレメント幅
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ

外側シンボルキャラクタ(16,4)

キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数

グループキャラクタ値モジュール数
奇数/偶数
最大エレメント幅
奇数/偶数
偶数成分
組合せ総数
10 - 16012/48/11
2161 - 96010/66/310
3961 - 20148/84/534
42015 - 27146/103/670
52715 - 28404/121/8126

内側シンボルキャラクタ(15,4)

キャラクタ値 = 偶数成分値 X 奇数成分組合せ総数 + 奇数成分値 + グループ内の最小値
偶数成分値 = (キャラクタ値 - グループ内の最小値)div 奇数成分組合せ総数
奇数成分値 = (キャラクタ値 - グループ内の最小値)mod 奇数成分組合せ総数

グループキャラクタ値モジュール数
奇数/偶数
最大エレメント幅
奇数/偶数
奇数成分
組合せ総数
10 - 3355/102/74
2336 - 10357/84/520
31036 - 15159/66/348
41516 - 159611/48/181

チェックサムの計算

チェックサムは、シンボルキャラクタの各エレメント幅と重みを掛け合わせた総和をmod79した値。

エレメントの重み

シンボル
キャラクタ
各エレメントの重み
113927261854
241236298247258
31648653732175174
46434236949684659

位置検出パターン

チェックサム mod79 の計算値からチェックキャラクタを計算して、パターンを決める。
チェックサムが8以上ならチェックサムを+1する。その値が72以上ならまたチェックサムを+1する。
左側チェックキャラクタ = チェックサム div 9
右側チェックキャラクタ = チェックサム mod 9
8と0または0と8という組合せは使用しない。

チェック
キャラクタ
エレメント幅
038211
135511
233711
331911
427411
525611
623811
715711
813911

GS1データバー標準二層型のシンボル構造

上段
左側
ガード
シンボル
キャラクター
1
(16,4)
左側
位置検出
パターン
シンボル
キャラクター
2
(15,4)
上段
右側
ガード
----------分離パターン----------
下段
左側
ガード
シンボル
キャラクター
4
(15,4)
右側
位置検出
パターン
シンボル
キャラクター
3
(16,4)
下段
右側
ガード

上段左側ガード1モジュールのスペース + 1モジュールのバー
シンボルキャラクタ1(16,4)16モジュール(左から右に4つのスペースと4つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
左側位置検出パターン15モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅
シンボルキャラクタ2(15,4)15モジュール(右から左に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
上段右側ガード1モジュールのバー + 1モジュールのスペース
分離パターン3段で構成される。1段の高さは1モジュール幅と同じ。
下段左側ガード1モジュールのバー + 1モジュールのスペース
シンボルキャラクタ4(15,4)15モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
右側位置検出パターン15モジュール(右から左に3つのバーと2つのスペース)最後の2エレメントは1モジュール幅
シンボルキャラクタ3(16,4)16モジュール(右から左に4つのバーと4つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
下段右側ガード1モジュールのスペース + 1モジュールのバー

・上段/下段のシンボル幅は50モジュールで25のエレメント(スペースとバー)で構成
・最小シンボル高さは、1モジュール幅の69倍(33+3+33)

分離パターン

・両端の4モジュール分には分離パターンはなし(常に白)。
・上段パターンは上段シンボルと反対色。左側位置検出パターンのエレメント1とエレメント3は例外で、黒・白・黒...と1モジュール幅で繰り返す。
・下段パターンは下段シンボルと反対色。右側位置検出パターンのエレメント2は例外で、黒・白・黒...と1モジュール幅で繰り返す(左から右に)。
 右側位置検出パターンの値が3の場合は、エレメント2は1モジュール幅になるが、その黒1モジュールを右に1モジュール分ずらす。
・中断パターンは、白・黒...と1モジュール幅で繰り返す。

GS1データバー切詰型

・標準型との違いは、高さが最小(13 x 1モジュール幅)に切り詰めただけ。

GS1データバー二層型

・標準二層型との違い
1.上段の高さは、5 x 1モジュール幅
2.下段の高さは、7 x 1モジュール幅
3.分離パターンは、1段のみ

分離パターン

・両端の4モジュール分には分離パターンはなし(常に白)。
・上段と下段が共にバー(黒)の時はスペース(白)。
・上段と下段が共にスペース(白)の時はバー(黒)。
・上段と下段が異なる時は、左側の分離モジュールの反対色にする。これは、1モジュール幅単位で繰り返す。

GS1データバー限定型のシンボル構造

左側
ガード
左側シンボル
キャラクター
(26,7)
チェック
キャラクタ
(18,7)
右側シンボル
キャラクター
(26,7)
右側
ガード

左側ガード1モジュールのスペース + 1モジュールのバー
左側シンボルキャラクタ(26,7)26モジュール(左から右に7つのスペースと7つのバー)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
チェックキャラクタ18モジュール(左から右に7つのスペースと7つのバー)最後の2エレメントは1モジュール幅
右側シンボルキャラクタ(26,7)26モジュール(左から右に7つのバーと7つのスペース)偶数番目のエレメントには、1モジュール幅のエレメントが1つは必要
右側ガード1モジュールのスペース + 1モジュールのバー + 5モジュールのスペース

(01)15012345678907を表すGS1データバー限定型シンボル

・先頭の(01)はアプリケーション識別子で、シンボルには含まれないが、リーダからは送信される。
・最後の1桁の7は、GTIN-14のチェックデジットで、シンボルには含まれないが、リーダからは送信される。
・GTIN-14の最初の1桁のインジケータが0か1の商品コードのみ扱える。
・連結フラッグが設定されている場合は二次元コンポーネントが連結している。
・シンボル化できるのは13桁(最大1999999999999)のコードで、連結フラッグを設定する時は値2015133531096を加算する。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の10倍以上必要。
・シンボル幅は79モジュールで47のエレメント(スペースとバー)で構成
・奇数番目のエレメントがスペースで、偶数番目のエレメントがバー。

シンボルキャラクタ

・シンボル値 = 左側キャラクタ値 X 2013571 + 右側キャラクタ値
・左側キャラクタ値 = シンボル値 div 2013571
・右側キャラクタ値 = シンボル値 mod 2013571

奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値
2.モジュール数
3.エレメント数
4.最大エレメント幅
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ

シンボルキャラクタ(26,7)

キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数

グループキャラクタ値モジュール数
奇数/偶数
最大エレメント幅
奇数/偶数
偶数成分
組合せ総数
10 - 18306317/96/328
2183064 - 82006313/135/4728
3820064 - 10007759/173/66454
41000776 - 149102015/115/4203
51491021 - 197984411/154/52408
61979845 - 199693819/78/11
71996939 - 20135707/191/816632

チェックサムの計算

チェックサムは、シンボルキャラクタの各エレメント幅と重みを掛け合わせた総和をmod89した値。

エレメントの重み

シンボル
キャラクタ
各エレメントの重み
1392781651751641442372266
20602618547341341339288474

チェックキャラクタ

チェックサム mod89 の計算値がチェックキャラクタ。

シーケンス = スペースパターン値 X 21 + バーパターン値

奇数・偶数サブセットのエレメント幅を割り当てる符号化ルーチン(getRSSwidths)に与えるパラメータ
1.奇数・偶数成分値 = シーケンス div 21・シーケンス mod 21
2.モジュール数 = 8
3.エレメント数 = 6
4.最大エレメント幅 = 3
5.1モジュール幅のエレメントを必ず含むかどうかのフラッグ = 1(含まなくても良い)

シーケンスシーケンスシーケンスシーケンスシーケンスシーケンスシーケンスシーケンスシーケンス
0010102020303040405066601277014680316
1111112121313141415173611287121081317
2212122222323242425274621297221182318
3313132323333343435375631307321283319
4414142424343444455476641327421384320
5515152525353545525577651417521485322
6616162626363646575678661427621586323
7717172727373747635779671437721687326
8818182828383848645882681447821788337
991919292939394965591266914579220

GS1データバー拡張型のシンボル構造

6セグメントフォーマットのシンボル例 (01)90012345678908(3103)001750

左側
ガード
チェック
キャラクター
(17,4)
位置検出
パターン
A1
シンボル
キャラクター
1
(17,4)
シンボル
キャラクター
2
(17,4)
位置検出
パターン
B2
シンボル
キャラクター
3
(17,4)
シンボル
キャラクター
4
(17,4)
位置検出
パターン
B1
シンボル
キャラクター
5
(17,4)
右側
ガード

左側ガード1モジュールのスペース + 1モジュールのバー
チェックキャラクタ(17,4)17モジュール(左から右に4つのスペースと4つのバー)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
位置検出パターンA115モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅
シンボルキャラクタ1(17,4)17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
シンボルキャラクタ2(17,4)17モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
位置検出パターンB215モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅
シンボルキャラクタ3(17,4)17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
シンボルキャラクタ4(17,4)17モジュール(左から右に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
位置検出パターンB115モジュール(左から右に3つのスペースと2つのバー)最後の2エレメントは1モジュール幅
シンボルキャラクタ5(17,4)17モジュール(右から左に4つのバーと4つのスペース)奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要
右側ガード1モジュールのバー + 1モジュールのスペース

・最初のシンボルキャラクタはチェックキャラクタで、チェックサムとシンボル長が符号化される。
・位置検出パターンとその両側にあるシンボルキャラクタを1組にして、その連続でシンボルを構成する。
・シンボルキャラクタが奇数の場合は、最後は位置検出パターンとなる。
・シンボル値は2進数として内部表現され、シンボルキャラクタ数 × 12ビットのバイナリ列となる。
・クワイエットゾーンは不要。
・バーの高さはモジュール幅の34倍以上必要。

シンボルキャラクタ(17,4)

キャラクタ値 = 奇数成分値 X 偶数成分組合せ総数 + 偶数成分値 + グループ内の最小値
奇数成分値 = (キャラクタ値 - グループ内の最小値)div 偶数成分組合せ総数
偶数成分値 = (キャラクタ値 - グループ内の最小値)mod 偶数成分組合せ総数

・シンボルキャラクタ値の範囲は、0~4095(12bitの2進数)。
・奇数番目のエレメントには、1モジュール幅のエレメントが1つは必要。
・奇数エレメントの1番目は、4モジュール以下の幅とする。

グループキャラクタ値モジュール数
奇数/偶数
最大エレメント幅
奇数/偶数
偶数成分
組合せ総数
10 - 34712/57/24
2348 - 138710/75/420
31388 - 29478/94/552
42948 - 39876/113/6104
53988 - 41914/131/8204

データの符号化

・GS1-128規則に従ってAIエレメント列を連結する。(可変長エレメント列の最後はFNC1)
・シンボルキャラクタ数 × 12ビットのバイナリ列は、下記の5領域に分割される。
 1.二次元コンポーネント連結フラッグ
 2.符号化方式
 3.可変長シンボルビット
 4.圧縮データ
 5.汎用データ圧縮

二次元コンポーネント連結フラッグ領域

連結フラッグは1ビットで、1なら二次元コンポーネントが連結している。

符号化方式領域

符号化方式領域シンボルキャラクタ数圧縮データ領域長汎用データ圧縮領域AIエレメント列
 15 - 2244あり(01)商品識別コード+他のAI
 004 - 220あり(01)商品識別コード以外の任意のAI
 0100655(01)商品識別コード+(3103)計量商品の計測値(0.001Kg)
 0101655(01)商品識別コード+(3202)/(3203)計量商品の計測値(0.01lb/0.001lb)
 011006 - 2242あり(01)商品識別コード+(392x)計量商品金額(各国通貨)
 011017 - 2252あり(01)商品識別コード+(393x)計量商品金額(ISO通貨コード)
 0111000876(01)商品識別コード+(310x)計量商品の計測値+(11)製造年月日
 0111001876(01)商品識別コード+(320x)計量商品の計測値+(11)製造年月日
 0111010876(01)商品識別コード+(310x)計量商品の計測値+(13)包装年月日
 0111011876(01)商品識別コード+(320x)計量商品の計測値+(13)包装年月日
 0111100876(01)商品識別コード+(310x)計量商品の計測値+(15)品質保持期限日
 0111101876(01)商品識別コード+(320x)計量商品の計測値+(15)品質保持期限日
 0111110876(01)商品識別コード+(310x)計量商品の計測値+(17)有効期限
 0111111876(01)商品識別コード+(320x)計量商品の計測値+(17)有効期限

可変長シンボルビット領域

シンボルキャラクタ数が可変の場合に存在し、2ビットで構成される。

ビット構成ビット値0ビット値1
1番目シンボルキャラクタ数が偶数シンボルキャラクタ数が奇数
2番目シンボルキャラクタ数が14以下シンボルキャラクタ数が15以上

圧縮データ領域

符号化方式領域が「1」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)を除いた13桁を2進数へ変換して複合化する。

商品識別コード12345678910111213
ビット数410101010

符号化方式領域が「0100」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(3103)を除いた6桁の計測値を2進数へ変換して符号化する。最大値は32.767Kg。

商品識別コード2345678910111213計量値5桁
ビット数1010101015

符号化方式領域が「0101」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(3202)を除いた6桁の計測値(最大値は99.99lb)を2進数へ変換して符号化する。
計測値のAI(3203)を除いた6桁の計測値(最大値は22.767lb)に10000を加えたものを2進数へ変換して符号化する。

商品識別コード2345678910111213計量値5桁
ビット数1010101015

符号化方式領域が「0111000」~「0111111」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(310x)/(320x)の最後の1桁(x)と6桁の計測値の下5桁を6桁にして2進数へ変換して符号化する。
年月日のAI(11)/(15)/(17)を除き下記の通り日付を圧縮して(0 - 38399)2進数へ変換して符号化する。
圧縮された年月日が38400の場合は、日付領域が符号化されてないことを意味する。
これは符号化方式「0100」/「0101」の計測値の最大値を超えた場合に日付なしで用いられる。

年月日YYMMDD → YY x 384 + (MM - 1) x 32 + DD = 0 ~ 38399

商品識別コード2345678910111213AIの最後の1桁と計量値下5桁圧縮した日付
ビット数101010102016

符号化方式領域が「01100」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(392x)の最後の1桁(x)は小数点以下の数を表し、0~3の値となる。
計測値のAI(392x)の最後の1桁を2進数へ変換して符号化する。
計量商品金額(15桁までの可変長)は、汎用データ圧縮領域に符号化される。

商品識別コード2345678910111213AIの最後の1桁
ビット数101010102

符号化方式領域が「01101」の場合の圧縮データ領域

商品識別コードからAIの01とチェックディジット(最後の1桁)とインジケータ(最初の1桁の9)を除いた12桁を2進数へ変換して符号化する。
計測値のAI(393x)の最後の1桁(x)は小数点以下の数を表し、0~3の値となる。
計測値のAI(393x)の最後の1桁を2進数へ変換して符号化する。
ISO通貨コード3桁を2進数へ変換して符号化する。
計量商品金額(15桁までの可変長)は、汎用データ圧縮領域に符号化される。

商品識別コード2345678910111213AIの最後の1桁ISO通貨コード3桁
ビット数10101010210

汎用データ圧縮領域

数字符号化方式

数字とFNC1を用い、1文字当たり3.5ビット必要。
汎用データ圧縮領域の最初に有効になる符号化方式。
2桁の数字、FNC1+数字、数字+FNC1を下記式で変換して7ビットに符号化する。
 値 = 11 × 1桁目 + 2桁目 + 8 (FNC1は10で計算)
値は8~127になる。7ビットでは、0001000~1111111。
この7ビットに続き4ビットの0000が続くと、英数字符号化方式への切り替えを意味する。

数字が1文字残っている場合

残りのビット数が4ビット以上になるように下記式で計算する。
 残りビット(4ビット以上) = 12(シンボルキャラクタ1つで12ビット) × N - 現時点での合計ビット数
残りビット数が4~6の場合は、数字に1を加えたものを4ビットに符号化する。 残りビット数が7以上の場合は、数字+FNC1を7ビットに符号化し、残りはパディングビットで埋める。 パディングビットは、0000で英数字符号化方式に切り替え、00100を繰り返す。(JIS X 0201 符号化方式と英数字符号化方式の切り替えを繰り返す)

英数字符号化方式

数字とFNC1及び英大文字と5つの記号を用い、数字とFNC1は1文字当たり5ビット、英大文字と記号は1文字当たり6ビット必要。
次のキャラクタが数字で18文字以上ある場合は数字切換えする。
次のキャラクタ以降が12文字以上の数字列で、データが終了する場合は数字切換えする。
残りのビットは、パディングビットで埋める。パディングビットは00100を繰り返す。

キャラクタ2進数キャラクタ2進数キャラクタ2進数キャラクタ2進数
数字切換え000A100000N101101*111010
JISX0201切換え00100B100001O101110,111011
000101C100010P101111-111100
100110D100011Q110000.111101
200111E100100R110001/111110
301000F100101S110010
401001G100110T110011
501010H100111U110100
601011I101000V110101
701100J101001W110110
801101K101010X110111
901110L101011Y111000
FNC101111M101100Z111001

JIS X 0201 符号化方式

数字とFNC1及び英大文字と英小文字及び21個の記号を用い、数字とFNC1は1文字当たり5ビット、英大文字と英小文字は1文字当たり7ビット、記号は1文字当たり8ビット必要。
次のキャラクタ以降が12文字以上の数字列の場合は数字切換えする。
次のキャラクタ以降10個の中に英小文字や記号(JISX0201符号化方式だけの文字)が含まれていなく、英数字符号化方式で符号化できる場合は、英数字切換えする。
残りのビットは、パディングビットで埋める。パディングビットは00100を繰り返す。

キャラクタ2進数キャラクタ2進数キャラクタ2進数キャラクタ2進数キャラクタ2進数キャラクタ2進数キャラクタ2進数
数字切換え000A1000000N1001101a1011010n1100111|11101000:11110101
英数字切換え00100B1000001O1001110b1011011o1101000"11101001;11110110
000101C1000010P1001111c1011100p1101001%11101010<11110111
100110D1000011Q1010000d1011101q1101010&11101011=11111000
200111E1000100R1010001e1011110r1101011'11101100>11111001
301000F1000101S1010010f1011111s1101100(11101101?11111010
401001G1000110T1010011g1100000t1101101)11101110_11111011
501010H1000111U1010100h1100001u1101110*11101111スペース11111100
601011I1001000V1010101i1100010v1101111+11110000
701100J1001001W1010110j1100011w1110000,11110001
801101K1001010X1010111k1100100x1110001-11110010
901110L1001011Y1011000l1100101y1110010.11110011
FNC101111M1001100Z1011001m1100110z1110011/11110100

位置検出パターン

グループセグメント数位置検出パターン列
14A1 A2
5, 6A1 B2 B1
7, 8A1 C2 B1 D2
9, 10A1 E2 B1 D2 C1
11, 12A1 E2 B1 D2 D1 F2
13, 14A1 E2 B1 D2 E1 F2 F1
215, 16A1 A2 B1 B2 C1 C2 D1 D2
17, 18A1 A2 B1 B2 C1 C2 D1 D2 E1
19, 20A1 A2 B1 B2 C1 C2 D1 E2 F1 F2
21, 22A1 A2 B1 B2 C1 C2 D1 E2 E1 F2 F1

Ver.1モジュール数Ver.2モジュール数
A118411A211481
B136411B211463
C134611C211643
D132811D211823
E126511E211562
F122911F211922

チェックキャラクタ

バーコードシンボルに含まれるシンボルキャラクタ数(チェックキャラクタを含む)4~22とチェックサム値を符号化する。

チェックキャラクタ値(0~4009) = 211 × (シンボルキャラクタ数 - 4) + チェックサム値
チェックサム値 = (シンボルキャラクタの各エレメント幅 × 重み係数)の総和 mod 211

シンボル
キャラクタ
の位置
エレメント番号に対する重み
12345678
A1の右1392781329677
A2の左206018011814372163
A2の右1891451339117140209205
B1の左19315749147195717191
B1の右621861361971698544132
B2の左18513318814241236108
B2の右1131281739780298750
C1の左15028844112315852156
C1の右46138203187139206196166
C2の左76175115337111122155
C2の右43129176106107110119146
D1の左164814410309059177
D1の右109116137200178112125164
D2の左70210208202184130179115
D2の右134191151319368204190
E1の左148226619817294712
E1の右6185416264192126167
E2の左12014925751442126167
E2の右7926782369207199175
F1の左103988338114131182124
F1の右161611831271708853159
F2の左551657382472515
F2の右451351941605817410089

6セグメントフォーマットのシンボルの符号化例 (01)90012345678908(3103)001750

領域名二次元
コンポーネント
連結フラッグ
符号化
方式
可変長
シンボル
ビット
圧縮データ汎用
データ
圧縮
商品識別コード(中12桁)計量値
0012345678901750
2進数001000000000001001110101010001101111101111010000011011010110
シンボルキャラクタ12345
2進数001000000000001001110101010001101111101111010000011011010110
10進数512629113530241750

8セグメントフォーマットのシンボルの符号化例 (01)98898765432106(3202)012345(15)991231

圧縮日付 = 99x384 + (12-1)x32 + 31 = 38399

領域名二次元
コンポーネント
連結フラッグ
符号化
方式
可変長
シンボル
ビット
圧縮データ汎用
データ
圧縮
商品識別コード(中12桁)AI下1桁+計量値下5桁圧縮日付
88987654321021234538399
2進数001111011101111001110110110010000111110011010010001100111101011110011001010111111111
シンボルキャラクタ1234567
2進数001111011101111001110110110010000111110011010010001100111101011110011001010111111111
10進数98937023207328282919451535