Output 21.2 Output of Data with Special Missing Numeric Values
Note: SAS is displayed and prints special missing values that use letters in uppercase.
Reading Binary Data
is numeric data that is stored in binary form. Binary numbers have a base of two and
are represented with the digits 0 and 1.
packed decimal data
are binary decimal numbers that are encoded by using each byte to represent two
decimal digits. Packed decimal representation stores decimal data with exact
precision; the fractional part of the number must be determined by using an informat
or format because there is no separate mantissa and exponent.
zoned decimal data
are binary decimal numbers that are encoded so that each digit requires one byte of
storage. The last byte contains the number's sign as well as the last digit. Zoned
decimal data produces a printable representation.
Using Binary Informats
SAS can read binary data with the special instructions supplied by SAS informats. You
can use formatted input and specify the informat in the INPUT statement. The informat
that you choose is determined by the following factors:
• the type of number being read: binary, packed decimal, zoned decimal, or a variation
of one of these
• the type of system on which the data was created
• the type of system that you use to read the data
Different computer platforms store numeric binary data in different forms. The ordering
of bytes differs by platforms that are referred to as either “big endian” or “little endian.”
For more information, see “Byte Ordering for Integer Binary Data on Big Endian and
Little Endian Platforms” in SAS Formats and Informats: Reference.
Reading Binary Data 453
SAS provides a number of informats for reading binary data and corresponding formats
for writing binary data. Some of these informats read data in native mode, that is, by
using the byte-ordering system that is standard for the system on which SAS is running.
Other informats force the data to be read by the IBM 370 standard, regardless of the
native mode of the system on which SAS is running. The informats that read in native or
IBM 370 mode are listed in the following table.
Table 21.6 Informats for Native or IBM 370 Mode
Description Native Mode Informats
IBM 370 Mode
ASCII Character $w. $ASCIIw.
ASCII Numeric w.d $ASCIIw.
EBCDIC Character $w. $EBCDICw.
EBCDIC Numeric (Standard) w.d S370FFw.d
Integer Binary IBw.d S370FIBw.d
Positive Integer Binary PIBw.d S370FPIBw.d
Real Binary RBw.d S370FRBw.d
Unsigned Integer Binary PIBw.d S370FIBUw.d,
Packed Decimal PDw.d S370FPDw.d
Unsigned Packed Decimal PKw.d S370FPDUw.d or PKw.d
Zoned Decimal ZDw.d S370FZDw.d
Zoned Decimal Leading Sign S370FZDLw.d S370FZDLw.d
Zoned Decimal Separate Leading
Zoned Decimal Separate Trailing
Unsigned Zoned Decimal ZDw.d S370FZDUw.d
If you write a SAS program that reads binary data and that is run on only one type of
system, you can use the native mode informats and formats. However, if you want to
write SAS programs that can be run on multiple systems that use different byte-storage
systems, use the IBM 370 informats. The IBM 370 informats enable you to write SAS
programs that can read data in this format and that can be run in any SAS environment,
regardless of the standard for storing numeric data.
The IBM 370 informats can also be
For example, using the IBM 370 informats, you could download data that contain binary integers from a mainframe to a PC and then
use the S370FIB informats to read the data.
454 Chapter 21 • Reading Raw Data