如何使用 Java 解压缩 COMP 数字?
Posted
技术标签:
【中文标题】如何使用 Java 解压缩 COMP 数字?【英文标题】:How to unpack COMP digits using Java? 【发布时间】:2020-04-29 05:55:53 【问题描述】:我发现这个link 对于解压的 COMP-3 数字很有用,但是这次我需要解压 COMP 数字,有人知道如何解压吗?非常感谢!
【问题讨论】:
【参考方案1】:在大多数 Cobol 编译器中,Comp 是一个大端二进制整数。对于大型机,仅支持 2/4/8 字节。所以对于有符号值
03 Signed-Num pic s9(4) comp.
如果你有一个字节数组中的值,你可以这样做
BigInteger value = new BigInteger(byteArray);
您也可以使用DataInputStream
的readShort()、readInt()和readLong()方法最后JRecord 会让你用 Cobol 字帖阅读 Cobol 文件
【讨论】:
【参考方案2】:IBM 提供 Java 方法库以简化与 z/OS 服务和数据格式的交互。可以在这里找到概述jZOS Toolkit
这是PackedDecimal Operations的链接
这里有其他用于管理二进制数据的ByteArrayUnmarshaller
【讨论】:
以上是关于如何使用 Java 解压缩 COMP 数字?的主要内容,如果未能解决你的问题,请参考以下文章
如果使用struct.pack(fmt,v1,v2,...)在python打包,如何在cpp中解压缩数字
如何使用 Java 压缩/解压缩文件夹及其所有文件和子目录?