COBOL中的COMP值零是什么意思?

COBOL中的COMP值零是什么意思?,cobol,Cobol,在下面的stackoverflow链接下有一个很好的COMP解释: 但我还是不明白什么是COMP值 77 ABC PIC S9(4) COMP VALUE ZERO. 意味着。如果有人能澄清这一点,我将不胜感激。COMP或computical指的是存储表示。对于大多数实现,它与(大端数)二进制相同,对于某些压缩十进制,它很少相同 存储表示为显示值零表示初始值为+0 它类似于 short abc = 0; 用其他一些语言。但是,PIC S9(4)将值限制为-9999到+99

在下面的stackoverflow链接下有一个很好的COMP解释: 但我还是不明白什么是COMP值

   77  ABC       PIC S9(4) COMP VALUE ZERO.

意味着。如果有人能澄清这一点,我将不胜感激。

COMP
computical
指的是存储表示。对于大多数实现,它与(大端数)
二进制
相同,对于某些
压缩十进制
,它很少相同 存储表示为
显示
<代码>值零表示初始值为+0

它类似于

short abc = 0;

用其他一些语言。但是,PIC S9(4)将值限制为-9999到+9999。

读取该行代码的方法

77  ABC       PIC S9(4) COMP VALUE ZERO.


如果我没弄错的话,它会将变量初始化为
0
。没错,值零初始化为零,但是COMP值零呢?我无法理解这里的COMP用法。PIC S9(4)将值限制为-9999到+9999,标准符合选项有效。例如,使用编译的IBM Enterprise COBOL将PIC S9(4)限制为-32768到+32767。
PIC S9(4)COMP
不是数据项的“数据类型”。它是两个独立的子句:
PIC S9(4)
给出范围和精度,以及定义存储表示类型的
[USAGE]COMP[utation]
77               is the level
ABC              is the data item name
PIC S9(4) COMP   is the data item's 'data type'
VALUE ZERO       is what to initialize the data item to.