我需要从类型为“ PIC S9(2)COMP ”的COBOL变量中检索数据到“ int ”类型的C变量。< / p>
它使用字符串的两个字节存储,因此我将其作为几个字符接收。
我知道COBOL以二进制格式将十进制数据存储到“ S9(2)COMP ”中,因此这将是一个很好的帮助,让我知道任何算法或方法来安全地转换它。
任何形式的帮助&amp;建议将受到欢迎。
最后,由于字节顺序问题,我们决定在实现的COBOL部分将变量的图片更改为9(3)。
感谢各位的回答。
答案 0 :(得分:2)
您应该能够将其视为短整数或16位二进制补码整数。您需要检查endianess,具体取决于哪个平台来自该领域。
答案 1 :(得分:1)
s9(2)comp 的格式取决于Cobol编译器。我所知道的大多数Cobol编译器都会存储一个2字节的大端整数(高字节优先;英特尔处理器先存储低字节)。例外情况包括
MicroFocus(取决于编译参数) - 通常为1字节整数 RM-Cobol:有自己的“二进制格式”。
如果是2字节整数
答案 2 :(得分:1)