質問: cobol 9(02)で定義した変数にマイナス値をセットすると? cobolについて教えてください。 現在、既存のシステム(cobol)を机上でチェックしているのですが、 関数からの戻り値変数を (例)rc 9(02) で定義して、 異常発生時に、move -1 で値セットしているロジックがありました。 s9タイプではないので、誤動作を起こすと思うのですが、 実際このような処理を行うと、変数rcにはどんな値がセットされるのでしょうか? 実行環境が無いので、動作確認ができず、困っています。(バグかと思うのですが、該当のロジックは幸いにも今まで実行されていなかったようです) よろしくお願いします。
回答: no4さんは、cobolを知っている人でしょうか? 数値項目を端末に表示したり帳票出力する場合、cobolでは編集項目(=文字)か外部10進(=文字であるが、数値としても扱える)にmoveするのが一般的です。 元の数値項目は、2進数、内部10進でも同じことです。 編集項目を使わず外部10進を出力するとき、符号付になっていると最終桁に符号情報も持っているために文字化けします。 質問にある関数がどういう目的のものか分かりませんが、関数のリターンコードを表示等をする目的があるなら、表示できる変数等にmoveしてから行う必要があります。 符号付のまま表示すると、既に書いている通り文字化けしてしまいます。 普通、リターンコードは2進で2バイトか4バイトにする場合が多いでしょうが、この質問では関数の内容まで触れられていないので、その辺はなんとも答えられません。