在COBOL中使用COMP的变量

时间:2017-02-23 09:28:44

标签: cobol mainframe

我试图了解带有COMP Usage子句的COBOL变量如何存储值。

我尝试了一个例子,如下所示

    01  VAR14          PIC S9(5) USAGE COMP.   

    MOVE 12345 TO VAR14
    DISPLAY VAR14

在SPOOL中,VAR14的值将为0000012345。 根据手册,S9(5) COMP大小为4个字节,因此我的理解VAR14应显示为000012345。 二进制表示如下:

0000 0000 0000 0000 0011 0000 0011 0100‬

有人可以帮助理解输出值0000012345吗?

由于

1 个答案:

答案 0 :(得分:1)

COMP的使用子句将称为BINARYCOMPUTATION

COMP使用条款仅适用于数字数据类型。

COMP的用法是数据的二进制表示。

COMP变量中的数据以纯二进制格式存储内存。

COMP使用情况的内存分配如下。

Picture           Number of Bytes
S9 to S9(4)       2
S9(5) to S9(9)    4
S9(9) to S9(18)   8