gpt4 book ai didi

cobol - Signed Comp-3 Data COBOL 中的 DISPLAY 显示意外输出

转载 作者:行者123 更新时间:2023-12-05 08:45:59 26 4
gpt4 key购买 nike

理论上,我研究过comp-3中字符的结尾告诉它是正值还是负值

  • C - 表示正值
  • D - 表示负值

这是否不适用于大型机中的新版本 COBOL?

01 WS-COMP3   PIC S9(5)   COMP-3   VALUES  -12.


DISPLAY WS-COMP3

OUTPUT: 0001K

对于上面的代码,我得到的字符结尾是 K 而不是 D值 K 是 -2 的替代0 ==> } -1 ==> J, -2 ==> K ....

最佳答案

DISPLAY ... 与数字数据类型一起使用需要转换为可显示类型。 COBOL 标准需要它。

COMP-3 的典型转换是将数据项移动到等效的可显示格式。对于这种情况,PIC S9(5) COMP-3通常会转换为PIC S9(5) SIGN TRAILING来显示。

此转换意味着内部存储的值将被转换,以便除最后一个数字之外的个别数字将被转换为可显示的数字。最后一个将更改符号指示符以反射(reflect)特定实现的格式。

对于 IBM 大型机,-12 的内部 COMP-3 格式为 00 01 2D,将被转换为 F0 F0 F0 F1 D2 显示为 0001K

许多 ASCII 系统会提供略有不同的结果。相同的内部格式将转换为 30 30 30 31 x2,其中 x 取决于实现的要求。它可能显示为 0001B0001r 或其他一些,例如 SIGN SEPARATEgiving -00012

由任何 COBOL 实现完成的任何数据类型的实际转换将记录在语言引用中。


来自 2002 年标准,B.1 实现者定义的语言元素列表,

  1. DISPLAY statement (data conversion). This item is required. This item shall be documented in the implementor's user documentation. (14.8.10, DISPLAY statement, general rule 1)

DISPLAY 语句,14.8.10.3 一般规则,

  1. The DISPLAY statement causes the content of each operand to be transferred to the hardware device in the order listed. If an operand is a zero-length data item, no data is transferred for that operand. Any conversion of data required between literal-1 or the data item referenced by identifier-1 and the hardware device is defined by the implementor.

关于cobol - Signed Comp-3 Data COBOL 中的 DISPLAY 显示意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70741374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com