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



从文本文件中读取值的十六进制表示,例如0C,我需要将相应的十六进制值X'0C'存储在程序变量中,如下代码所示。我知道COBOL允许对某个变量执行类似MOVE 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.

如果编译器支持它,请使用HEX-TO-CHAR内部函数。

最新更新