【COBOL】LOW-VALUEとSPACEとZEROをヘキサで見る

↓この記事を書いたきっかけは、LOW-VALUEとかZEROをヘキサで見たかったんですけど見られなかったから苦肉の策でやってみたのです。

mhaya18.hatenablog.com

そうしましたらTwitterで「DISPLAYでヘキサ表示無理ならファイルに書いてバイナリエディタで見ればええで」とのコメントいただきました^^

(@kozbuzzさんありがとうございます)

LOW-VALUEとSPACEとZEROの姿をこの目でみる

違うのは分かってるんですけど実際違うところ見たいじゃないですか。

結論

  • LOW-VALUE:00
  • SPACE:20
  • '0':30
  • ZERO:30

実験結果

環境

  • Ubuntu 18.04.3 LTS
  • cobc (OpenCOBOL) 1.1.0

ソースコード

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TEST_DATA.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
         SELECT F1 ASSIGN TO "F1.dat".
       DATA DIVISION.
       FILE SECTION.
       FD F1.
         01 F1RC.
      *    文字
           03 STR                       PIC X(4).
      *    符号なし数字4桁
           03 NM                        PIC 9(4).
      *    符号つき数字4桁(3+符号)
           03 NM_S4                     PIC S9(4).
      *    符号つき数字4桁(バイナリ)2バイト
           03 NM_4B                     PIC S9(4) COMP.
      *    符号つき数字9桁(バイナリ)4バイト
           03 NM_9B                     PIC S9(9) COMP.
      *    符号つき数字3桁(パックデシマル)2バイト
      *    567 -> 56 7+
           03 NM_3C3                    PIC S9(3) COMP-3.
      *    符号つき数字4桁(パックデシマル)3バイト
      *    5678 -> 05 67 8+
           03 NM_4C3                    PIC S9(4) COMP-3.
         WORKING-STORAGE SECTION.
       PROCEDURE DIVISION.
         MAIN-S.
      *
           OPEN OUTPUT F1.
      * -- LOW-VALUE --
           MOVE LOW-VALUE               TO F1RC.
           MOVE 'LOWV'                  TO STR.
           WRITE F1RC.
           MOVE LOW-VALUE               TO F1RC.
           WRITE F1RC.
      * -- SPACE --
           MOVE LOW-VALUE               TO F1RC.
           MOVE 'SPCE'                  TO STR.
           WRITE F1RC.
           MOVE SPACE                   TO F1RC.
           WRITE F1RC.
      * -- ALL'0' --
           MOVE LOW-VALUE               TO F1RC.
           MOVE 'ALL0'                  TO STR.
           WRITE F1RC.
           MOVE ALL'0'                  TO F1RC.
           WRITE F1RC.
      * -- ZERO --
           MOVE LOW-VALUE               TO F1RC.
           MOVE 'ZERO'                  TO STR.
           WRITE F1RC.
           MOVE ZERO                    TO F1RC.
           WRITE F1RC.
      *
           CLOSE F1.
      *
           STOP RUN.
         MAIN-E.

バイナリエディタで表示

f:id:mhaya18:20191221123439p:plain

いや~、これで安心ですね。

仕事で質問されても100%自信をもって答えられますわ。