Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報
Re:16進を10進に変換する方法

投稿者: ゼロ 投稿日時: 2006-8-18 10:18:00

遅くなりましたが、江須扇様レスありがとうございました。


USAGE COMP-1を使用してレコード長、ブロック長、更新回数は問題なく10進に変換できました。


01 FDF-RECORDSIZE PIC X(2).  : 内容 '0256'(h)
01 WORK-RECORDSIZE.
 02 WORK-RSIZ1  PIC X(5).
 02 WORK-RSIZ2  REDEFINES WORK-RSIZ1 USAGE COMP-1.

MOVE FDF-RECORDSIZE TO WORK-RSIZ2.


これで、WORK-RSIZ1の内容が’256d’になっていました。

USAGE COMP-1の仕組みがよく理解できていないので結果論ですが、16進数→10進数の変換は出来たようです。

問題になったのが第1〜第4エクステント開始終了アドレス。
これは上記の方法で変換するとまったく意味不明な値が帰ってきたので下記のような変換テーブルを作って1バイトづつ判断して内部16進から外部16進に変換しました。
あとは16進→10進への計算ルーチンを作って10進にしました。
もっといい方法があるかもしれませんがこれしか思いつきませんでした。


01 H-TABLE  PIC X(16) VALUE ""00010203・・・0D0EOF"".
01 H-TBL  REDEFINES H-TABLE PIC X(1) OCCURS 16 TIMES.
01 D-TABLE  PIC X(32) VALUE "00010203・・・0D0E0F".
01 D-TBL  REDEFINES D-TABLE PIC X(2) OCCURS 16 TIMES.



名前※
題名
メッセージ url email imgsrc image code quote
サンプル
bold italic underline linethrough  



 [もっと...]
パスワード※
オプション ※印の項目をクッキーに保存