• 締切済み

モジュラス103の算出方法について

現在、チェックディジット算出モジュールを作成しようとしています。 CODE128で使用されるモジュラス103を計算する場合、スタートコード[CODE-A],[CODE-B]などの非データキャラクタも計算に含まれるようで そこで行き詰ってしまいました。 ASCII値のない非データキャラクタをプログラム中でどう処理すればいいのかがわからないのです。 [CODE-A]や[FNC1]などの非データキャラクタはデータ中でどのような値として存在しているのでしょうか?

みんなの回答

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.1

こちらは参考になるでしょうか? http://www.kishugiken.co.jp/reading/barcode/barcode4.html

kaiji_0
質問者

お礼

回答ありがとうございます。 リンクの方読ませていただきました。 解決には至りませんでしたが、参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • NW7のチェックディジットについて

    まことに申し訳ありませんがどなたか教えてください。 現在バーコードでNW7を利用して会員管理をしようとしているのですが、これには海外の協会の使用があるらしく、通常NW7において使われるモジュラス16のチェックディジットは使わずにモジュラス10、もしくはモジュラス11を使用しなければばらばいようなのです。 この場合スタートキャラクタやストップキャラクタの取り扱いはどのようにすればよいのでしょうか? 例をあげますと... A1234567890B (チェックディジットは入っていない)    A=16 B=17 ですからこの場合数値換算すると  16123456789017  となりこれでモジュラス10ウエィト3の計算をすればよいのでしょうか?  (7+0+8+6+4+2+6)*3=99 (1+9+7+5+3+1+1)=27  99+27=136  10-6=4 ...これが正解なのでしょうか? それともほかにキャラクタコードの扱いがあるのでしょうか?NW7のモジュラス10の計算方法があるのでしょうか? 非常に悩んでいます。 どなたかよろしくお願いいたします。    

  • モジュラス11の余り「0」の扱いについて

    特別徴収税額通知データの作成で 市町村コード6桁化に使う モジュラス11について質問ですが 余り「0」の場合、検査数字は「0」のハズなのに 全国地方公共団体コードのサイトでは 余り「0」の場合、検査数字は「1」になってます。 計算式を見ると、「モジュラス11ウエイト2~7」 のようですが、何か釈然としません。 そこで確かめたいのが (1) モジュラス11の余り「0」の場合、   検査数字は「0」なのか「1」なのか? (2) 両方まかり通っているならば   ひょっとしてローカルルール適用可能なのか? 詳しい方、解説をお願いします。 特別徴収税額通知データ(総務省通達形式CSV) http://www.eltax.jp/file.jsp?id=3363 ●モジュラス11の余り「0」→検査数字「1」派 全国地方公共団体コードにおける「検査数字」について(情報提供:総務省) https://www.lasdec.or.jp/cms/1,7505,14.html#cd ●モジュラス11の余り「0」→検査数字「0」派 JIS X 0306:1999 国際標準逐次刊行物番号 (ISSN) http://kikakurui.com/x0/X0306-1999-01.html NW-7(CODABAR) http://www.aimjal.co.jp/bclink/nw-7.htm 『モジュラス11(ウエイト・・・)計算式』(MYU) エクセル Excel [エクセルの学校] http://www.excel.studio-kazu.jp/kw/20100426101944.html

  • GTINのチェックディジットについて

    GTIN(Global Trade Item Number)のチェックディジットの計算方法を教えてください。 たとえばJANコードの場合モジュラス10で計算しますが、GTINコードの場合、どのように計算すればよいのでしょうか?

  • COBOLでのチェックデジット算出

    COBOL初心者です。 01 印刷領域. 03 Aコード PIC X(03). 03 Bコード PIC X(04). 03 Cコード PIC X(02). 03 チェックデジット PIC X(01). と定義した変数のA,B,Cコードだけをサブルーチンに渡して、チェックデジットを受け取りたいと思います。 このときチェックデジットを抜いた"印刷領域"を渡すことは可能でしょうか? 例) Aコード 102 Bコード 2001 Cコード 03 渡すデータ102200103 受け取るチェックデジット7 印刷領域 1022001037 という具合にしたいんですが… あと、A,B,Cコードは数字に変換しなければなりません。 すみませんがおしえてください(ToT)/~~~

  • 誤差の算出について

    誤差を含むaとbという値があって、y=(lna)/bが成り立つときに(lna)/bの誤差を求めようと思うのですが、この場合aをlnaとして計算しておいて誤差の伝播則を使うべきなのでしょうか?計算してみるとあまりにも誤差が大きく算出されてしまい、明らかにおかしい状態になります。 教えていただけないでしょうか。

  • 三菱PLCでの232C通信

    三菱のPLC(A1S)にて計算機リンクを使い(A1SJ71C24R2)232C通信をしようと思うのですが、初めてなのでうまくいっているのか分かりません。モニタ上ではデータレジスタに値は書き込まれています。仕様としては東研のバーコードリーダでQRコードを読みその値をPLCに送信しようとしてます。QRの内容は半角の英数文字です。PLCのFROM命令でバッファメモリを読み込むと5桁くらいの数値が入ってきます。この数値は何なのでしょうか?読み込んだ値をGOTなどに表示したいのですが、GOTの画面にアスキー表示をつけ、数値の入っているデバイスを指定しても何も表示されません。この数値を一度ASCIIで変換する必要があるのでしょうか?232C自体やASCIIコード自体、今回使うのが初めてで、マニュアルを調べながらがんばっているのですがいまいちよく分かりません。又、このような外部機器に232Cで通信すて指令を出す場合コマンドをASCIIに変換しTO命令で計算機リンクのバッファメモリに書き込めばいいのでしょうか?例えばバーコードリーダーのトリガーをPLCからコントロールする場合等です。もうひとつは例えば「ABCD120A  ABC」というQRデータをPLCに取り込みこの中の120Aだけを別のデータレジスタに書き込めるのでしょうか?この「120A」は1~3桁にランダムに変動します。詳しい方いたら教えてください。よろしくお願いします。

  • RS232Cを用いたSCIでのシリアル通信について

    PCで計算して吐き出した5~6個の数値データ(それぞれ3桁の数字で最大2バイトあれば足りる大きさです)をRS232Cを使ってSCIでマイコンに送り、マイコン側でそのデータを使って計算する、というシステムを考えています。 色々勉強してみたのですが、例えばPC側プログラムがテキストデータで吐き出した数値を読み込んで送信する場合、全てアスキーコードで送られてしまうのでしょうか?少なくともキーボード入力の値はアスキーコードで送られているようだとはわかりましたが・・・。 また、まだアルゴリズムは考えてませんが、PC側の計算プログラムから直接に数値をPC側送信プログラムに渡してあげた場合は、やはりそのままの値(例えば8なら1バイト2進法で00001000で送られるものなのでしょうか? 開発環境はC言語で、マイコンはSH2だということです。通信は今はテスト段階でハイパーターミナルを使っていますが、いずれは命令を出したときに適切な値を送信するようにしたいので、C言語で書かれたSCI通信のフリーウェアなどを使う検討もしています。 その理由はC言語プログラムの中にハイパーターミナルをどのように含めればいいのかわからなくて・・・ C言語でできたソフトなら、そのままPC側計算プログラムに組み込めばいいかなぁと思いまして・・・。(浅はか?) この点についてもご教授頂ければ幸いです。 説明不足かもしれませんが、その場合はご指摘ください。 どうぞ、宜しくお願いいたします。

  • マイナス値の昨年対比率の算出方法?

    表計算で、店別の粗利の昨年対比を算出したいのですが、計算式を教えて下さい。例えば昨年値 A=100 今年値 B=123 なら B*100/A-> 123% となり納得いきます。 しかし AもBもマイナス値の場合はどう計算するのでしょうか? A=-123 B=-100 なら去年より成績がよくなったので 100% 以上の答えを期待するのですが B*100/Aでは期待する答えになりません。実務上ではどのように作表するのが正しい方法なのでしょうか?

  • データを3行ずつまとめて計算

    3.4 2.4 1.6 2.7 5.6 2.9 … と1行ずつ値が入っているファイルがあるのですが、このデータから3行ずつ取り出して合計を算出する(上の値なら3.4+2.4+1.6、2.7+5.6+2.9と計算していく)プログラムを作りたいのですが、どうすれば良いでしょうか…?

  • ASCIIコードへの変換方法

    ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をASCIIコードで表示させるプログラム ポインタaの中身aはASCIIコード8進数で001です。 ポインタbの中身aceはASCIIコード8進数で001003005です。 という感じのプログラムを作りたいのですが ASCIIへの変換方法がわからなく困っています。 もしよろしかったら具体例等のプログラムのご教授願います。

専門家に質問してみよう