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