Skip to content

6.7.4.4 Binary and Hexadecimal Numeric Formats ​

二进制和十六进制格式主要为了与现有机器格式兼容而设计,并非为了人类可读性。因此它们都以 F 格式作为默认输出格式。其中部分格式仅能在字节序(大小端)或浮点格式兼容的机器之间移植。

二进制格式使用的字节值在文本文件中会被解释为特殊控制功能,例如回车与换行。因此,二进制格式的数据不应包含在语法文件中,也不应从普通文本文件这类变长记录的数据文件中读取。它们可以从定长记录的数据文件读取或写入此类文件。有关定长记录的处理,请参见 FILE HANDLE。

P and PK Formats ​

这些是二进制编码的十进制格式,其中每个字节(P 格式中除最后一个字节外)表示两个十进制数字。第一个字节中最高有效 4 位是最高有效十进制数字,第一个字节中最低有效 4 位是下一个十进制数字,依此类推。

在 P 格式中,最后一个字节的最高有效 4 位是最低有效十进制数字。最低有效 4 位表示符号:十进制 15 表示负值,十进制 13 表示正值。

输出时数字向下舍入。系统缺失值以及超出可表示范围的数字输出为零。

最大字段宽度为 16。小数位数范围为 0 到字段所表示的十进制数字个数。

默认输出格式为 F 格式,其宽度为输入字段宽度的两倍,再加一列用于小数点(若要求小数位)。

IB and PIB Formats ​

这是整数二进制格式。IB 读写 2 的补码二进制整数,PIB 读写无符号二进制整数。字节序默认为宿主机的字节序,但可使用 SET RIB 为读取选择特定字节序(参见 SET RIB),类似地,可用 SET WIB 为写入选择(参见 SET WIB)。

最大字段宽度为 8。小数位数范围为 0 到该字段宽度所能表示的最大值中的十进制数字个数。

默认输出格式为 F 格式,其宽度为该字段宽度所能表示的最大值中的十进制数字个数,若格式有小数位则再加 1。

RB Format ​

这是实数的二进制格式。默认读写宿主机的浮点格式,但可使用 SET RRB 为读取选择另一种浮点格式(参见 SET RRB),类似地,可用 SET WRB 为写入选择(参见 SET WRB)。

推荐的字段宽度取决于浮点格式。NATIVE(默认格式)、IDL、IDB、VD、VG 和 ZL 格式应使用字段宽度 8。ISL、ISB、VF 和 ZS 格式应使用字段宽度 4。其他字段宽度不会产生有用结果。最大字段宽度为 8。不可指定小数位。

默认输出格式为 F8.2。

PIBHEX and RBHEX Formats ​

这些是十六进制格式,用于读写二进制格式,其中每个字节被重新编码为一对十六进制数字。

十六进制字段仅由十六进制数字 ‘0’…‘9’ 和 ‘A’…‘F’ 组成。输入时接受大写和小写;输出为大写。

除十六进制表示外,这些格式分别等价于 PIB 和 RB 格式。不过,PIBHEX 格式中的字节始终按最高有效字节在前(大端序)的顺序排列,不受宿主机本机字节序或 PSPP 设置影响。

字段宽度必须为偶数,且在 2 到 16 之间。RBHEX 格式不允许小数位;PIBHEX 允许的小数位数与宽度为给定宽度一半的 PIB 格式相同。

基于 GNU PSPP 2.0.1 手册与入门教程整理