• ベストアンサー

COBOLのCOMP形式について

久しぶりにCOBOL開発をする事になり、 懐かしく思ってPGを解析しているとどうしても 思い出せないものがありました。  COMP形式です。 AAA PIC 9(05)      5バイトで12345ならば「F1F2F3F4F5」 BBB PIC 9(05)COMP-3      3バイトで12345ならば「12345F」 CCC PIC 9(05)COMP      この場合は何バイトになるのでしょうか?      及び、12345の場合、どのようになるのでしょうか? 以上、初歩的な部分ですが皆様よりご教授頂きたいと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

メーカーやOSによって違うのではないでしょうか? メインフレームの日立であれば、 PIC S9(n) COMP の場合、n=1~4は2バイト、n=5~9は以上は4バイト、10~18は8バイトの2進数になります。

KRO-CHAN
質問者

お礼

補足情報ありがとうございます。 説明不足ですみません。 今回はPC-COBOLと富士通のMシリーズが 対象で質問には富士通機を意識して書きました。

その他の回答 (3)

回答No.4

そうですね。私の担当機種はオフコンの為回答したように入っていました。 質問者の方の環境がわからなければ両方回答してないと誤解を与えてしまいますので配慮が足りませんでした ご迷惑をおかけして申し訳ございません

回答No.3

>AAA PIC 9(05)は「F1F2F3F4F5」 >ではなく「3132333435」と入っていました IBM互換のメインフレームで使われているEBCDIC(またはEBCDIK)コードなら、前者になります。 JISコードを採用しているNEC、PC上のCOBOLなら後者になるのでは?

KRO-CHAN
質問者

お礼

補足情報ありがとうございます。 説明不足ですみません。 今回はPC-COBOLと富士通のMシリーズが 対象で質問には富士通機を意識して書きました。

回答No.1

4バイトで「00003039」(HEX)と入って、負の数の場合は2の補数で入るはずです AAA PIC 9(05)は「F1F2F3F4F5」ではなく「3132333435」と入っていました

KRO-CHAN
質問者

お礼

ありがとうございます。 説明不足ですみません。 今回はPC-COBOLと富士通のMシリーズが 対象で質問には富士通機を意識して書きました。

関連するQ&A