Reading Binary Data

IBM mainframes, Hewlett Packard 9000, and most other UNIX systems store bytes in one order, called big-endian. Intel-based, or IBM compatible microcomputers and the VAX and Alpha computers manufactured by Compaq store bytes in a different order called byte-reversed, or little-endian.
Binary data stored in one order cannot be read by a computer that stores binary data in the other order without additional processing taking place. When you are designing SAS applications, try to anticipate how your data will be read and choose your formats and informats accordingly.
SAS provides two sets of informats for reading binary data and corresponding formats for writing binary data.
  • The IBw.d, PDw.d, PIBw.d, and RBw.d informats and formats read and write in native mode, that is, using the byte-ordering system that is standard for the machine.
  • The S370FIBw.d, S370FPDw.d, S370FRBw.d, and S370FPIBw.d informats and formats read and write according to the IBM 370 standard, regardless of the native mode of the machine. These informats and formats enable you to write SAS programs that can be run in any SAS environment, regardless of how numeric data are stored.
If a SAS program that reads and writes binary data runs on only one type of machine, you can use the native mode informats and formats. However, if you want to write SAS programs that can be run on multiple machines using different byte-storage systems, use the IBM 370 formats and informats. The purpose of the IBM 370 informats and formats is to enable you to write SAS programs that can be run in any SAS environment, no matter what standard you use for storing numeric data.
For example, suppose you have a program that writes data with the PIBw.d format. You execute the program on a microcomputer so that the data are stored in byte-reversed mode. Then on the microcomputer that you run another SAS program that uses the PIBw.d informat to read the data. The data are read correctly because both the programs are run on the microcomputer using byte-reversed mode. However, you cannot upload the data to a Hewlett Packard 9000-series machine and read the data correctly because they are stored in a form native to the microcomputer but foreign to the Hewlett Packard 9000. To avoid this problem, use the S370FPIBw.d format to write the data; even on the microcomputer, this causes the data to be stored in IBM 370 mode. Then read the data using the S370FPIBw.d informat. Regardless of what type of machine you use when reading the data, they are read correctly.