CA ADS:pic 9(2) comp 字段中的 3 位数字

CA ADS: 3 digits in a pic 9(2) comp field

这里很奇怪。在我测试 ADS 对话框期间,数值 120 被移动到一个索引字段,该字段被定义为 PIC 9(2) COMP 字段。

更进一步,引用了具有该索引的字段,如下所示:

将字段(索引)移至 FIELD2。

“Index”被定义为 PIC 9(2) COMP 并且在值 120 被移动到索引之前。对话没有中止。怎么来的?我需要担心这个吗?移动120后'index'的价值是多少???

谢谢

我假设 PIC 9(2) COMPCA ADS 中的相同Cobol !!!

答案就在

  • 如何实现 PIC 9(2) COMP
  • 使用的编译器选项

PIC 9(2) COMP 的实施

A PIC 9(2) COMP 通常分配为 1 字节或 2 字节二进制整数。一个

  • 一个1字节的二进制整数可以表示-128 --> 127(或者0 --> 255,如果unsigned int是二手)
  • 一个2字节的二进制整数可以表示-32000 --> 32000(或者0 --> 64000,如果unsigned int是二手)

因此 PIC 9(2) COMP 可以存储 120.


编译器

大多数(如果不是全部)Cobol 编译器可以选择check/correct Comp 溢出,但这些选项通常关闭 以提高性能。 我认为 CA ADS 也是如此。