- 论坛徽章:
- 0
|
本帖最后由 franliu 于 2014-03-20 10:55 编辑
zonned decimal: 一个数字位占据一个字节。如果定义十位数字,就占据10个字节。
数字 12345678 用十六进制表示就是:
F0 F0 F1 F2 F3 F4 F5 F6 F7 F8
对正数而言,它是和字符串 '0012345678' 的内码是一样的。
packed decimal: 一个字节可以存储2位数字。不过需要额外半个字节存储符号(正或者是负)。这样定义6位或者7位数字都占据4个字节。数字 12345 用十六进制表示就是:
00 12 34 5F
最后半字节 F 表示正数,D 表示负数
如果你有一个 RPG 程序,输入参数是 packed decimal 8 位, 你在命令行里调用他,需要输入值 12345 的时候,命令行应该这样写:
CALL PGM(MY_PGM) PARM(X'000012345F')
如果你有一个 RPG 程序,输入参数是 zoned decimal 8 位, 你在命令行里调用他,需要输入值 12345 的时候,命令行应该这样写:
CALL PGM(MY_PGM) PARM('00012345')
注意只有在输入参数是 packed decimal 15,5 的时候你才可以这样调用:
CALL PGM(MY_PGM) PARM(12345)
小数点是不占据存储字节的。 |
|