1

我有一个固定宽度的文本文件,它已从 Comp-3 数据解压缩为固定宽度的字符串。

我需要知道如何解释以下字段:

FIELD-NAME-1 PIC S9(15)V9(3) COMP-3.
FIELD-NAME-2 PIC S9(3)V9(8) COMP-3.
FIELD-NAME-3 PIC S9(3)V9(6) COMP-3.

这些在我的平面文件中显示为:

FIELD-NAME-1 0123456789123456780
FIELD-NAME-2 01234567890
FIELD-NAME-3 012345670

我需要知道上面的数字代表什么。

它是否正确:

FIELD-NAME-1 123456789123456.780  --> The first 0 means +ve?
FIELD-NAME-2 012.34567890
FIELD-NAME-3 012.345670

谢谢您的帮助。火腿

4

1 回答 1

0

S9(15)V9(3) 需要 19 个半字节(实际上是 20 个,因为它必须生成偶数个半字节)来存储:

  • 一个为标志。
  • 15 为整数位。
  • 3 表示非整数位(V 是隐含的小数,不是实数)。

C该符号通常以 a或nybble的形式出现在末尾,D因此这个问题的答案完全取决于拆包的内容。

你的第一个例子实际上有正确的数字而没有符号,所以我会担心你的陈述,其中一个代表了符号。要么,要么你已经离开了“9”。其他两个示例对于符号和数字部分都有足够的数字。

最好的选择,看看你是否可以得到一个负数(和其他测试数据,如 1),看看它会产生什么。

于 2009-04-28T08:48:16.547 回答