浅谈cobol的几种数据类型

浅谈cobol的几种数据类型


2024年4月18日发(作者:)

浅谈cobol的几种数据类型

COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类, 我将分

几篇文章分别讲述他们的使用和注意的地方.

类型 示例 说明

字母形 A(2) 只能使用26个字符和空格.

字符形 X(2) 可以使用字符集定义的字符和数字

数字形 S9V99 数字形有三个类型, binary, packed decimal, zoned decimal.

数字编辑 -zz9.99 用于格式化数值输出

其他如DBCS类型, 浮点形在COBOL使用很少.

对于字符,字母形都比较好理解, 所占字符数, 就是其定义的个数. 对于数字编辑形,

仅仅用于格式化数值, 不能进行数值运算和布尔比较. 计算字符数需要如下计算:

eg: -zz99.99 所占字符数就是计算所有定义字符数,

1(-)+2(zz)+2(99)+1(.)+2(99)=8. 其中-号表示负数显示-号, 正数不显示+号. zz表示

前导0, 就是不显示前面的0.

eg:

PICTURE Value of Data Edited Result

-ZZ99.99 +123.45 123.45

-ZZ99.99 -123.456 - 123.45

至于详细的各类符合和数值编辑的使用, 将会专门写一章来讲述.

我们详细说一下数值形,按照带不带符合,可以区分符合形, 非符合形. 安装存储类型分

为binary, packed decimal, zoned decimal.

以下举例详细说明,

zone decimal 一般称9型. eg 9(4)V99或者s9(4)V99, 每个9占一位,符号和V不

占位. 示例就分别是6. 如果这个值是1234.56,在内存存储分别是'F1F2F3F4F5F6',

'F1F2F3F4F5C6'. 对于无符号,就是123456的EBCDIC码,对于带符号,对于正数,最后的F

为C表示正,负数为D表示负.示例就是'C6'.

packed decmial 也是COMP-3型. 9(4)V99 COMP-3或者s9(4)v99 comp-3型.存

储长度计算为[x/2]+1,[x/2]+1表示9的总个数+1/2的取整, 原因是做了压缩存储,这个示

范就是4. 如果这个值是123456, 在内存存储分别是'0123456F'和'0123456C', 对于无符

号,最后补个F表示无符合,对于带符合,如果是正数就是C,负数就是D.所有总长度就是

[x/2]+1.

使用的时候, 数值型之间都可以直接进行各类操作. 但需要注意的是, 如果对于未赋

值的COMP-3型, 在赋值前做任何计算操作, 将会导致数据例外, 但对于zoned decimal


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713423504a2246050.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信