键盘寻梦
IBM大型机应用开发==>ZHONCHEN'S BLOG
posts - 1,comments - 0,trackbacks - 0

   

X 型数据和单纯的 9 类型的数据以 ASCII 码的形式存储,占位数与定义长度一致                                                                                                                                                                                                                                                                                                                                                 

                                                                                                                                                                                                                                                                                                                                                        

V 在文件中不占位,小数点的具体位置要根据中间文件确定。                                                                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                          S 型数据, S 同样不占位,以 ASCII 码的形式存储。但存储数据为负时,数据的最后一字节的第 7 位被置为 1 (正数为 0                                                                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                        

COMPUTATIONAL                                                                                                                                                                                                                                                                                                                                                

        一般情况下,当数据是金额、数量等情况。会采用 COMP 格式的数据。                                                                                                                                                                                                                                                                                                                                                  

        采用 COMP (压缩格式 ) 的数据能节省内存,在 ONLINE 的程序中一般用作电文数据的格式。                                                                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                        

        1 COMP-5 数据在文件中为二进制形式,按字节读取转换,在文件中占位如下:                                                                                                                                                                                                                                                                                                                                                   

                                                                                                                                                                                                                                                                                                                                                        

                        9(1)--9(4):2                                                                                                                                                                                                                                                                                                                                  

                        9(5)--9(9):4                                                                                                                                                                                                                                                                                                                                  

                        9(10)--9(1:8                                                                                                                                                                                                                                                                                                                                  

                        9(1 以上:非法数据                                                                                                                                                                                                                                                                                                                                   

                                                                                                                                                                                                                                                                                                                                                        

        2 )当 COMP-5 数据的值为负数形式时:存储方式为正数形式的补码                                                                                                                                                                                                                                                                                                                                                  

                 例:                                                                                                                                                                                                                                                                                                                                          

                定义形式 -- 9(4) 占位数 -- 2                                                                                                                                                                                                                                                                                                                                         

                赋值: 1521 16 进制数 05 F 1 ,补码是 FA 0F                                                                                                                                                                                                                                                                                                                                            

                存储结果( 16 进制) --F1 05  ( 二进制 ) -- 11110001 00000101                                                                                                                                                                                                                                                                                                                                        

                定义形式 -- S9(4) 占位数 -- 2                                                                                                                                                                                                                                                                                                                                         

                赋值: -1521                                                                                                                                                                                                                                                                                                                                         

                存储结果( 16 进制) --0F FA  ( 二进制 ) -- 00001111 11111010                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                        

        3 COMP-5 数据中出现 V 定义的情况时,存储形式不受影响                                                                                                                                                                                                                                                                                                                                                  

                例:                                                                                                                                                                                                                                                                                                                                           

                定义形式 -- S9(3)V9(2)  占位数 -- 4                                                                                                                                                                                                                                                                                                                                        

                赋值: 932.11 93211 16 进制表示: 00 01 6C 1B                                                                                                                                                                                                                                                                                                                                             

                存储结果( 16 进制) -- 1B 6C 01 00  ( 二进制 ) 00011011 01101100 00000001 00000000                                                                                                                                                                                                                                                                                                                                        

                赋值: -932.11                                                                                                                                                                                                                                                                                                                                          

                存储结果( 16 进制) -- E5 93 FE FF  ( 二进制 ) 11100101 10010011 11111110 11111111                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                        

        4 COMP-3 数据类型同样以二进制的形式保存在文件中,其占位数计算方式如下:                                                                                                                                                                                                                                                                                                                                                  

                  占位数 =[ 定义长度 /2+1]     [] 表示取整                                                                                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                        

        5 COMP-3 数据在文件中存储形式如下例:                                                                                                                                                                                                                                                                                                                                                   

                例如:定义形式 --  9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3                                                                                                                                                                                                                                                                                                                                        

                赋值: 1521                                                                                                                                                                                                                                                                                                                                        

                 存储结果: 01 52 1F (F 表示正数 )                                                                                                                                                                                                                                                                                                                                        

                赋值: 0                                                                                                                                                                                                                                                                                                                                        

                存储结果: 00 00 0F                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                        

        6 COMP-3 带有符号位时,赋值为正时,最后半个字节为 16 进制 C ;赋值为负时,最后半个字节为 16 进制 D                                                                                                                                                                                                                                                                                                                                                

                例如:定义形式 --  S9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3                                                                                                                                                                                                                                                                                                                                        

                存储结果: 01 52 1D (D 表示负数 )                                                                                                                                                                                                                                                                                                                                        

                 赋值: 1521                                                                                                                                                                                                                                                                                                                                        

                存储结果: 01 52 1C                                                                                                                                                                                                                                                                                                                                        

                注意:当 COMP-3 的数据定义无 S ,赋予负值时,最后半个字节仍为 F ,即无法显示负数                                                                                                                                                                                                                                                                                                                                           

                                                                                                                                                                                                                                                                                                                                                        

        7 )定义 COMP-3 数据时使用 V 的话,所占字节数与存储方式与(上记 4 6 )相同。

                                                                                                                                                                   

posted on 2006-06-13 11:32 IBM大型机应用开发 阅读(9525) 评论(0)  编辑  收藏 所属分类: COBOL