将COMP-3打包的十进制字段解释为数值

5 cobol ssis comp-3

我正在创建一个SSIS包来读取一系列copybook文件中的解压缩数据.我不确定对以下字段定义的正确解释,并希望有人知道:

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:19 FIELD-NAME-2:11 FIELD-NAME-3:9

我不确定如何解释小数位和符号.

任何帮助将不胜感激.

亲切的问候,火腿

Cha*_*tin 2

开始了:

PIC是“图片”
S9(15)表示 15 位数字带符号字段:S 表示符号,9 是数字,(15) 是长度。
V小数点位置
9(3)是三位数字

COMP-3BCD,“二进制解码的十进制”。该字段的每个 nybble(半字节)都是二进制的十进制值,因此

0b01110110(废话)

是“76”。

18位需要9个字节,符号为低位字节的低半字节。

让我担心的是,这些应该需要10 个字节。

这是一篇关于它的好文章