COBOL中的COMP VALUE ZERO是什么意思?

Mas*_*odS 0 cobol

在以下stackoverflow链接下有一个很好的解释COMP:https: //stackoverflow.com/a/42423487/7802354 但我仍然不明白COMP VALUE ZERO在

   77  ABC       PIC S9(4) COMP VALUE ZERO.
Run Code Online (Sandbox Code Playgroud)

手段.如果有人澄清,我将不胜感激.

Ric*_*ith 6

COMPCOMPUTATIONAL指存储表示.对于大多数实现,它与(big-endian)相同BINARY,对于某些人来说PACKED-DECIMAL,很少与它相同的存储表示DISPLAY.VALUE ZERO表示初始值为+0.

它类似于

short abc = 0;
Run Code Online (Sandbox Code Playgroud)

在其他一些语言中.但是将PIC S9(4)值限制为-9999到+9999.

  • PIC S9(4)将值限制为-9999到+9999,符合标准的选项生效.例如,使用[TRUNC(BIN)]编译的IBM Enterprise COBOL(https://www.ibm.com/support/knowledgecenter/en/SS6SG3_6.2.0/com.ibm.cobol62.ent.doc/PGandLR/ui/up4060 .html)将PIC S9(4)限制为-32768至+32767. (3认同)