COBOL打包数据类型:Type = P5

时间:2013-06-25 11:48:19

标签: cobol packed-decimal

对于COBOL专家来说,这可能是一个非常基本的问题。但我到目前为止与COBOL无关。我们正在根据角色位置处理一些文件。这些文件是从大型机器发送给我们的,我们有一个布局文件,上面写着这样的东西。


位置:长度:类型:描述
----------:--------:------:----------------------- --------

61-70:10:P5:FIELD-1 9(13)V(05)

71-80:10:P5:Field-2 9(13)V(05)

81-81:1:A / N:FLAG

82-84:3:N:第9天(3)

据我所知,A / N类型意味着它是字母数字。 N表示数字,P表示打包数据类型。我不明白的是P5的含义。 P旁边有什么意义?

3 个答案:

答案 0 :(得分:1)

  

P旁边有什么意义?

我不确定。可能有五个16位字。

您的打包字段为10个字节,包含19个字符(18个数字加上符号)。小数点是隐含的。

如果符号字节(最右边的字节)不是十六进制F,请更新你的问题。

如果您可以使用代表五个数字的五个十六进制字符串更新您的问题,那就太棒了。

现在,我猜它是一个普通的压缩十进制字段。

答案 1 :(得分:1)

  • P - 压缩十进制(即Cobol Comp-3)一个18位的压缩小数将占用10个字节,这与长度一致

  • 5 - 小数点后的位数(猜测)。

cobol中的字段定义可能是

   03 FIELD-1  pic s9(13)V(05) comp-3.

在压缩十进制中,符号保存在最后一个nyble(4位)中,每个nyble(4位)保存一个十进制数字。

即。

   121 is represented as x'121c'
     

  -121 is represented as x'121d'

如果你正在使用java并且可以获得cobol副本,那么有些包可以使用cobol copybook读取文件。

答案 2 :(得分:1)

我敢打赌它意味着5位小数。