cobol中常用的数据类型

阅读更多
COBOL上的基本类型大致分为:常量、变量、直接数和结构体。下面只是简单介绍下COBOL中的常量。

    常量包括普通常量和象征常量两种,普通常量的内容在定义的同时通过VALUE语句给出,如:"01  NAME  PIC  9  VALUE  3.",象征常量通过COBOL中的关键字表示,两种常量的使用方式一样,只是象征常量不用定义,可以直接使用,SPACE(SPACES)代表空格,ZERO代表0,例如:变量NAME的长度为10个字符,则通过语句:MOVE  SPACES  TO  NAME后,NAME的值为10个空格。

    接下来看看COBOL中数据的定义方式:

    1.字符型    通过PIC X语句定义,定义方式有以下三种:

               A.  01   NAME   PIC X               NAME为长度为1的字符

               B.  01   NAME   PIC XXX             NAME为长度为3的字符

               C.  01   NAME   PIC X(10)           NAME为长度为10的字符

     以上的定义中,X的个数与字符的长度一致,长度过长时,可以通过括号来说明字符的长度。

    2.整型     通过PIC 9语句定义,这里“9”的含义、用法与上面的"X"相似。

               A.  01   NAME   PIC 9               NAME为长度为1的整型

               B.  01   NAME   PIC 999             NAME为长度为3的整型

               C.  01   NAME   PIC 9(10)           NAME为长度为10的整型

     定义整型的“9”和定义字符型的“X”是可以同时出现的,表示字符型的数据,如语句:“01   MIX   PIC   XXX9(3)XXX”,其中“9”出现的位置只能存放数字。

     需要说明的是通过这种方式定义的整型是无符号的,代码:

               MOVE  -10  TO  NUM

               ADD   10   TO  NUM

               DISPLAY   'NUM:' , NUM

     的输出为:NUM:20

    3.浮点数    通过定义符号V表示小数点的位置。如:“01  NAME  PIC  99V99”,表示小数点前有两位,小数点后有两位,不过需要注意的是:符号“V”并不占用实际存储空间,也就是说程序只是记录了小数点的位置,但并不开辟一个字节空间来存放小数点,所以对浮点数直接输出时,是看不到小数点的。例如语句:

           MOVE   10.09  TO  AGE.

           DISPLAY  AGE.

    的输出为1009,而不是期望的10.09,浮点数的输出要通过“Numeric Edited Fields”格式来输出。

    4.Signed Numbers符号类型    通过在“9”前面加S来定义,如:“01  AGE  PIC  S99”,其中“S”和浮点数中的“V”一样,不占存储空间,所以也不能直接输出(+10和-10输出后都是“10”),要通过“Numeric Edited Fields”来输出。

你可能感兴趣的:(cobol中常用的数据类型)