我试图了解带有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
吗?
由于
答案 0 :(得分:1)
COMP
的使用子句将称为BINARY
或COMPUTATION
。
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