[掲示板に戻る] 全部 1- 最新50 |
1 | 16進を10進に変換する方法 |
ゼロ 2006-8-5 8:59
[返信] [編集] SYS@FDF内よりデータを抜き出してファイルを管理するデータベースを作りたいと思ったのですが、肝心な部分(更新回数、更新日等)が16進の為にそのままでは利用できませんでした。 COBOLで16進から10進に変換する方法を教えてもらえないでしょうか? COBOLを利用する以外の方法でもかまいませんのでお願いします。 |
|
2 | Re:16進を10進に変換する方法 |
江須扇 2006-8-5 18:14
[返信] [編集] はじめましてゼロさん、江須扇と申します。 2バイト単位しか利用できませんが、USAGE COMP-1 を利用したらいかがでしょうか? 全く違う利用例ですがこの掲示板の181番にUSAGE COMP-1 を使ったCOBOLリストが載っております。 |
|
3 | Re:16進を10進に変換する方法 |
ちょっと前までA-VXユーザ 2006-8-17 23:18
[返信] [編集] USAGE COMP-1 って、2進数ですね。 16進数は、4bits表現で、0〜9,A〜Fですよね。 きっと間違っていないと思いますが、ちょっと気になって、 余計なお世話だったかな? 以上 |
|
4 | Re:16進を10進に変換する方法 |
ゼロ 2006-8-18 10:18
[返信] [編集] 遅くなりましたが、江須扇様レスありがとうございました。 USAGE COMP-1を使用してレコード長、ブロック長、更新回数は問題なく10進に変換できました。
これで、WORK-RSIZ1の内容が’256d’になっていました。 USAGE COMP-1の仕組みがよく理解できていないので結果論ですが、16進数→10進数の変換は出来たようです。 問題になったのが第1〜第4エクステント開始終了アドレス。 これは上記の方法で変換するとまったく意味不明な値が帰ってきたので下記のような変換テーブルを作って1バイトづつ判断して内部16進から外部16進に変換しました。 あとは16進→10進への計算ルーチンを作って10進にしました。 もっといい方法があるかもしれませんがこれしか思いつきませんでした。
|
|
5 | Re:16進を10進に変換する方法 |
江須扇 2006-8-19 7:35
[返信] [編集] >2バイト単位しか利用できませんが、USAGE COMP-1 >を利用したらいかがでしょうか? という事で、4バイトの場合は、 USAGE COMP-2 を利用していただくこととなります。 但し、 COMP-1 が−32768≦x≦32767 COMP-2 が−2147483648≦y≦2147483647 となります。 詳しくは、COBOL言語説明書、2.4.3.4 データの表現形式 をご覧下さい。 |
|
6 | Re:[5]:16進を10進に変換する方法 |
江須扇 2006-8-19 16:49
[返信] [編集] ご指摘の通りですね。
|
|
7 | Re:[5]:16進を10進に変換する方法 |
ゼロ 2006-8-22 13:02
[返信] [編集] ありがとうございます、希望通りの結果を得ることができました。 プログラムもすっきりして大満足です。 上1桁が負を表すってことをすっかり忘れていました、2進数なんて20年近く前に情報処理二種の試験勉強した依頼なんで。 次の課題はデータのデータ上に直接持っていないデータの追加可能件数をどうやって求めるか頭をひねってみようと思います。 |
[掲示板に戻る] 全部 次100 最新50 |
BluesBB ©Sting_Band