プロが教える店舗&オフィスのセキュリティ対策術

オープン系COBOL(できれば日立COBOL2002、Windowsサーバー)で、
以下のMOVE命令を実行したとき B はどうなりますか?
また、次のIF命令の実行結果はどうなりますか?
実験するのが一番かと思いますが、環境がなくて実験できていません。
ポイントは集団項目から符号付き数字項目への転記です。

  01 A.
    02 A01  PIC X(4)  VALUE "2020".
    02 A02  PIC X(2)  VALUE "12".
    02 A03  PIC X(2)  VALUE "16".
  01 B  PIC  S9(8)  SIGN IS LEADING SEPARATE CHARACTERS.
  01 C  PIC  9(8)   VALUE  20201216.


   MOVE A TO B.
   IF B = C
     DISPLAY "TRUE"
   ELSE
     DISPLAY "FALSE".

私の予想は、B は "20201216△" (△はSPACE 1文字を表しています)。
IF の実行結果はプログラム異常終了ですかね。

以上、よろしくお願いいたします。

A 回答 (2件)

集団項目は文字列だと思えば良いです。


COMPの付いていない数字項目も文字列なので、そのままコピーされて、数値として解釈されます。つまり、20201216という8桁の数値で、B = C は真です。
    • good
    • 0

True に100円。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています