You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求DQUSVR4数据结构的完全自由格式版本及12I 0格式说明

问题说明

我不清楚以下固定格式RPGLE数据结构的完全自由格式版本应该是什么样的:

DQUSVR4           DS
 D QUSLVR00                1      4I 0
 D QUSCK                   5      8I 0
 D QUSLD                   9     12I 0

我了解老式的5I 0、10I 0等整数规范,也查阅过IBM官方参考。看到IBM的一份参考指出,在输入规范中4I等同于四字节整数(10I),8I等同于八字节整数(20I),但12I 0的含义让我困惑。

补充背景:该数据结构位于QSYSINC/QRPGLESRC文件的QUS源成员中,用于处理用户空间。希望能得到这些规范的相关说明。


解答

自由格式等价实现

对应的自由格式RPGLE数据结构代码如下:

dcl-ds QUSVR4 qualified;
    QUSLVR00 int(10);      // 4字节有符号二进制整数
    QUSCK    int(20);      // 8字节有符号二进制整数
    QUSLD    packed(12:0); // 12位0小数的压缩十进制数
end-ds;

格式规范细节说明

  • 4I 0:固定格式中代表4字节有符号二进制整数,自由格式用int(10)对应(10位十进制是4字节二进制能容纳的最大有符号范围)。
  • 8I 0:代表8字节有符号二进制整数,自由格式对应int(20)。
  • 12I 0:这里的I容易和二进制整数的标识混淆,实际是老式RPG中对无小数压缩十进制数的写法。12指总位数,0指小数位,等价于12P 0,自由格式用packed(12:0)声明。

这个数据结构属于QSYSINC中用户空间API的定义,QUSLD字段存储用户空间的总长度,采用压缩十进制是早期IBM i API的常见设计。

内容的提问来源于stack exchange,提问作者theMountinman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:02:42