Cobol 如何将文字转换为十六进制值

Cobol 如何将文字转换为十六进制值,cobol,gnucobol,Cobol,Gnucobol,从文本文件中读取以2个字符表示的十六进制值,例如0C,我需要将相应的十六进制值X'0C'存储在程序变量中,如下代码所示。我知道COBOL允许将X'0C'移动到某个变量,但在我的例子中,文本“0C”存储在文件的记录中,而不是文本。 多谢各位 IDENTIFICATION DIVISION. PROGRAM-ID. T. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NA

从文本文件中读取以2个字符表示的十六进制值,例如0C,我需要将相应的十六进制值X'0C'存储在程序变量中,如下代码所示。我知道COBOL允许将X'0C'移动到某个变量,但在我的例子中,文本“0C”存储在文件的记录中,而不是文本。 多谢各位

IDENTIFICATION DIVISION.
       PROGRAM-ID.    T.
       ENVIRONMENT    DIVISION.
       CONFIGURATION  SECTION.
       SPECIAL-NAMES.
       INPUT-OUTPUT   SECTION.
       FILE-CONTROL.           
           SELECT    FD-DATA-FILE ASSIGN TO   WSIA-FN-FULL 
                     ORGANIZATION IS LINE SEQUENTIAL.                 
      *> --------------------------------------------------------------
       DATA           DIVISION.       
       FILE           SECTION.
       FD  FD-DATA-FILE.
       01  FD-DATA-REC.
           05 POS1 PIC XX.
           05 POS2 PIC XX.         
      *>===============================================================
       WORKING-STORAGE SECTION.
       01  WS-HEX PIC X.
      *>---------------------------------------------------------------    
       PROCEDURE DIVISION.                    
           OPEN FD-DATA-FILE.
           READ RD-DATA-FILE.
           *> how to accomplish this: The file may contain any 
           *> valid combination representing a hex value (15x15) 
           *> different values. 
           
           *> IF POS1 CONTAINS 'FF'  MOVE X'FF' TO WS-HEX.
           *> IF POS1 CONTAINS '0C'  MOVE X'0C' TO WS-HEX.
           *>....
           
           CLOSE FD-DATA-FILE.
           STOP RUN.
    

如果您的编译器支持,请使用十六进制到字符的内在函数。

您可能希望执行类似以下问题的操作:。@RickSmith,谢谢您的链接。它回答了我的问题。十六进制值(16x16)=256谢谢你指出这一点。我忘了提到我正在使用GNUCobol,它没有。我编辑了这个问题以添加GNUCobol标记。