B(二进制)编辑

用途

B 编辑描述符指示在内部格式的任何类型的值与其二进制表示之间进行编辑。 (二进制数字为 0 或 1。)

语法

  • Bw
  • Bw.m

规则

在输入时,编辑 w 个二进制数字并形成输入列表项值的内部表示。 输入字段中的二进制数字对应于赋给输入列表项的值的内部表示法的最右边二进制数字。 m 对输入没有影响。

在输入时,w 必须大于零。

在输出时,w 可以为零。 如果 w 为零,那么输出字段包含表示输出值所需的最少字符数。

Bw 的输出字段由零个或多个前导空格组成,后跟格式与二进制数字相同的内部值,不带前导零。 注意,二进制常量始终包含至少一个数字。

Bw.m 的输出字段与 Bw的输出字段相同,但数字字符串至少由 m 个数字组成。 如果需要,将用前导零填充数字字符串。 m 的值不得超过 w 的值,除非 w 为零。 如果 m 为零且内部数据的值为零,那么输出字段仅由空白字符组成,而不考虑生效的符号控制。

如果 m 为零,w 为正且内部基准的值为零,则输出字段由 w 个空白字符组成。 如果 Wm 均为零,并且内部数据的值为零,那么输出字段仅包含一个空白字符。

如果指定了 -qxlf77 编译器选项的 nooldboz 子选项 (缺省值) ,那么当输出字段宽度不足以包含整个输出时,将打印星号。 在输入时, BLANK= 说明符以及 BNBZ 编辑描述符会影响 B 编辑描述符。

IBM 扩展开始 如果 oldboz指定了 -qxlf77 编译器选项的子选项,则输出结果如下:
  • Bw 被视为 Bw.m,其中 m 假定值是 w 的最小值以及表示数据项的最大可能值所需的位数。
  • 输出包含后跟至少 m 位的空白。 这些是数字的最右边的数字,如有必要,用零填充,直到有 m 个数字。 如果数字太大而无法放入输出字段,则仅输出最右边的 m 位。

如果 w 为零,那么将忽略 oldboz 子选项。

子选项, oldboz子选项、 BLANK=说明符和 BNBZ编辑描述符不会影响 B编辑描述符。 IBM 扩展结束

示例

示例 1:输入时 B 编辑示例
Input      Format      Value
111        B3          7
110        B3          6
示例 2:输出时 B 编辑示例
Value      Format          Output                 Output
                   (with -qxlf77=oldboz)  (with -qxlf77=nooldboz)
 7          B3             111                    111
 6          B5             00110                  bb110
17          B6.5           b10001                 b10001
17          B4.2           0001                   ****
22          B6.5           b10110                 b10110
22          B4.2           0110                   ****
 0          B5.0           bbbbb                  bbbbb

 2          B0             10                     10