Lak*_*h C 2 cobol mainframe comp-3
理论上,我研究了 comp-3 中的字符结尾告诉它是正值还是负值
这不适用于大型机中的新版本 COBOL 吗?
01 WS-COMP3 PIC S9(5) COMP-3 VALUES -12.
DISPLAY WS-COMP3
OUTPUT: 0001K
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我得到的字符结尾为 K 而不是 D 值 K 是 -2 0 ==> } -1 ==> J, -2 ==> K ....
使用DISPLAY ...数字数据类型需要转换为可显示类型。COBOL 标准需要它。
典型的转换COMP-3是将数据项移动到等效的可显示格式。对于这种情况,PIC S9(5) COMP-3通常会转换为PIC S9(5) SIGN TRAILING用于显示。
此转换意味着内部存储的值将被转换,以便将除最后一个数字之外的各个数字转换为可显示的数字。最后一个将更改符号指示符以反映特定实现的格式。
对于 IBM 大型机,内部 COMP-3 格式现在-12和00 01 2D将来都会转换为F0 F0 F0 F1 D2显示为 的格式0001K。
许多 ASCII 系统将提供略有不同的结果。相同的内部格式将被转换为取决于实现要求的30 30 30 31 x2位置。x它可能显示为0001B或0001r或其他一些,例如SIGN SEPARATEGive -00012。
任何 COBOL 实现完成的任何数据类型的实际转换都将记录在语言参考中。
从2002年标准,B.1实现者定义的语言元素列表,
- DISPLAY语句(数据转换)。此项目为必填项。该项目应记录在实施者的用户文档中。(14.8.10,DISPLAY 语句,一般规则 1)
DISPLAY 语句,14.8.10.3 一般规则,
- DISPLAY 语句使每个操作数的内容按列出的顺序传输到硬件设备。如果操作数是零长度数据项,则不会传输该操作数的数据。文字 1 或标识符 1 引用的数据项与硬件设备之间所需的任何数据转换均由实现者定义。