如何使用 Java 解压缩 COMP 数字?

How to unpack COMP digits using Java?

我发现这对解压 COMP-3 数字很有用 link,但这次我需要解压 COMP 数字,有人知道如何解压吗?非常感谢!

在大多数 Cobol 编译器中,Comp 是一个大端二进制整数。对于大型机,仅支持 2/4/8 字节。所以对于有符号值

  03  Signed-Num     pic s9(4) comp.

如果你有字节数组中的值,你可以这样做

BigInteger value = new BigInteger(byteArray);

或者,您可以使用 readShort()readInt()readLong() DataInputStream

的方法

终于JRecord让你用Cobol字帖阅读Cobol文件

IBM 提供了一个 Java 方法库来简化与 z/OS 服务和数据格式的交互。可以在此处找到概述 jZOS Toolkit

这里是link到PackedDecimal Operations

这是管理二进制数据的其他方法ByteArrayUnmarshaller