あまりに暑いので、半ズボンにTシャツで仕事を
してます。ハワイ気分でプログラミング。
BGMにはハワイのFMをかけたりして。
これこれ
http://www.hawaiian105.com/
さて、QRコードのつづき。
今日は8ビットバイトモードの符号化だ。
これは簡単に言うとASCIIコードというかシフトJISの
文字コードをそのまま使うものである。
いわゆる半角文字などといわれるものです。
よって、単純に 入力データの文字コードを
2進数で表せばよい。
例) ab12 の場合
- 文字コードは 61 62 31 32
- 2進数では 00111101 00111110 00011111 00100000
- モード指示子 0100
- 文字数指示子 00000100 (型番により桁数が違う)
- 全部つないで
- 0100 00000100 00111101 00111110 00011111 00100000
8ビットバイトモード以上。
次に漢字モードも続けます。
漢字モードの漢字とはシフトJISの2バイト文字コード(16ビット)を
13ビットに圧縮するものだ。
文字コードが二つの範囲に分かれる。
- 16進数で 8140〜9FFCまでのグループ
- 8140を引く
- 16進数で E040〜EBBFまでのグループ
- C140を引く
- 上記の結果の上位バイトにC0を掛ける
- その結果に下位バイトを足す。
- 13ビットの2進数に変換
規格書の例ですが、 ”点” という文字の場合で要領を示すと
- 文字コードは 935F
- 8140 を引く 121F
- 上位バイト(12)にC0を掛ける D80
- 下位バイト(1F)を足す D9F
- 13ビットの2進数 0 1101 1001 1111
- モード指示子は 1000
- 文字数指示子は8又は10又は12ビットの2進数
というわけで、数字、英数字、8ビットバイトモード、漢字モードと
ここまで順調に符号化すすんだ。
混在モードは以上のモードを切り替えながら符号化するものだ。
モードを切り替えるたびに、モード指示子と文字数指示子が
入るので、やたらめったら、モードを切り替えるべきではない。
その辺の切り替えの指針は規格書にも載っているが、絶対ではない。
私は、だいたい、規格書の指針を参考にやりました。
続く。
0 件のコメント:
コメントを投稿