コンビニやスーパーマーケットで商品についている白と黒の線が縞状に並んでいるところ(バーコードといいます)がありますよね。このところを機械(バーコードリーダー)でピッとやる(スキャンする)とその値段が表示されます。この白と黒の線をよく見ると、引いてある線の太さが違っていることがわかります。つまり、商品の情報を、白と黒の太さの違う線で表し、それをバーコードリーダーが読み取って、これはいくらですと表示しているのです。
では、このことについて次の手順で説明していきます。
1 バーコードの種類
2 JANコード番号のきまり~お金はどこに?
3 バーコードの読み取り原理
・・・・参考:もっと詳しく知りたい人のために・・・・
4 JANコード(標準タイプ)の構成
5 チェックデジットはどのようにして決まるのか 

バーコードの種類

バーコードはバーコードシンボルと呼ばれるバーで表現した符号の総称で、大きく分けて図のように1次元シンボルと2次元シンボルに分けられます。
1次元シンボルは情報が黒と白のしましま(バー)で数値を認識できるようにしてあります。2次元シンボルは黒と白の点(ドット)であらゆる文字や記号を表現できますが、国際的なGS1(ジーエスワン)標準では数字、アルファベット、一部の記号のみを使用する決まりになっています。
図の2次元シンボルはこのホームページのURL「https://createroom.net」です。スマホで撮影してみてください。

1次元のバーコードの種類は世界で100種類以上あると言われています。それぞれのコードは医療機関用、自動車業界用、書籍用等、様々な業種で使いやすいように作られています。
そのうちJAN(Japanese Article Number)コードと呼ばれるコードは日本の共通商品コードで、生活用品のほぼ全てに記されています。コンビニやマーケットに陳列されている商品には、このJANコードが付けられています。
ここでは標準タイプのJANコードについて解説していきます。

JANコード番号のきまり~お金はどこに?

① 国コード
② 企業(メーカー)コード
③ 商品アイテムコード
④ チェックデジット

①は2桁で国のコードを表しますが、日本は「49」か「45」です。②の7桁は企業コードです。この①と②を合わせた9桁は商品のブランドを持つ事業者が一般財団法人流通システム開発センター(GS1(ジーエスワン) Japan)に申請して割り振られる番号です。国ごと・事業者ごとに異なる番号のため、世界中の異なる事業者の商品と重複することはありません。
③は商品一つ一つに割り当てられる番号ですが、これは事業者が決定します。
④はバーコードリーダーが読み違えていないかをチェックするための数値です。チェックデジット以外の12桁の数値から決められた計算式で1桁の数値であるチェックデジットを作ります。もし、汚れ等で間違った数値で計算すれば、このチェックデジットと一致しないのでエラーとなります。

意味はわかったけれど、お金の数値が出てこないですね。そうなんです。③の商品アイテムコードで事業者がお金を設定しているのです。だから、事業者が異なればお金も違うし、3つ買えば1000円ですというのも、商品アイテムコードからコンピュータが3つあることを確認して1000円にしてくれるんです。

バーコードの読み取り原理

バーコードに光を当てると、白いところは光の反射が強く、黒いところは光の反射が弱い。コンビニのレジでバーコードにバーコードリーダーから光が出ているのがわかると思います。
この光の反射の違いを電気信号に変えて、アナログの波形を得ます。これでは数値がはっきりとわからないので、AD変換といって、アナログを1と0の2値信号に変えて、デジタル波形を得ます。
これで初めてコンピュータがわかる言葉を作ることができたのです。
コンピュータがわかる言葉って何?、どうやってアナログをデジタルに変えるの?と次から次へ疑問がわきますね。
これらは次の機会をお楽しみに!

参考:もっと詳しく知りたい人のために

JANコード(標準タイプ)の構成

モジュールとは黒と白のしましまの1本のバーのことで、コードを示すための最小構成単位です。このモジュール幅は標準で0.33mmです。そして7つのモジュールで一つの数値(キャラクター)を表します。センターガードバーに対して左側の6キャラクターは、キャラクターパターンのナンバーセットAかナンバーセットBで表示します。また、右側の6キャラクターはナンバーセットCで表示します。しかし「4912345678904」は13桁なのに、右側の6キャラクターと左側の6キャラクターでは12桁しか表示できなくなってしまいます。実は13桁の内、最初の1桁目はリーディングディジットといって、左側の6キャラクターの構成、つまり、ナンバーセットAとナンバーセットBの組み合わせ(リーディングディジット)によって決められます。だから1桁目を表示しているモジュールはないんです。
また、キャラクターのパターンは黒のモジュールを「1」、白のモジュールを「0」としてあります。

例えば、図の13桁の数字「4912345678904」の最初の「4」はリーディングディジットの表から「ABAABB]となります。だから、2桁目から7桁目までの数字は順番にキャラクターパターンの「ABAABB]となるように設定すれば、自動的に最初の数字は「4」となります。
2桁目の「9」はキャラクターパターンのナンバーセットAなので「0001011」となり、3桁目の「1」はキャラクターパターンのナンバーセットBなので、「0110011」となります。4桁目の「2」はキャラクターパターンのナンバーセットAなので「0010011」となります。
センターガードバーの右側の6桁の数字はナンバーセットCの偶数パリティとなります。
図を見ながら、確認してください。
※奇数パリティは7つのモジュールの内、「1」(黒のモジュール)の数が奇数であり、偶数パリティは「1」(黒のモジュール)の数が偶数になっています。

チェックデジットはどのようにして決まるのか

13桁目のチェックデジットはその前の12桁の数字を用いて、決められたルールに基づいて計算された数値になります。
ルールは図にある通りです。
「491234567」は申請に基づき割り当てられる数字
「890」事業所で付ける数字
「4」は上記12桁の数字から計算される数字
ということになります。