PIBw.d

PIBw.d

Reads positive integer binary (fixed-point) values

 Category: Numeric

Syntax

 PIBw.d

Syntax Description

w
specifies the width of the input field.
 Default: 1 Range: 1-8

d
optionally specifies the power of 10 by which to divide the value.
 Range: 0-10

All values are treated as positive. PIBw.d reads positive integer binary values with consistent results if the values are created in the same type of operating environment that you use to run SAS.

Note:   Different operating environments store positive integer binary values in different ways. This concept is called byte ordering. For a detailed discussion about byte ordering, see Byte Ordering on Big Endian and Little Endian Platforms.

• Positive integer binary values are the same as integer binary values except that the sign bit is part of the value, which is always a positive integer. The PIBw.d informat treats all values as positive and includes the sign bit as part of the value.

• The PIBw.d informat with a width of 1 results in a value that corresponds to the binary equivalent of the contents of a byte. This is useful if your data contain values between hexadecimal 80 and hexadecimal FF, where the high-order bit can be misinterpreted as a negative sign.

• The IBw.d and PIBw.d informats are used to read native format integers. (Native format allows you to read and write values that are created in the same operating environment.) The IBRw.d and PIBRw.d informats are used to read little endian integers in any operating environment.

To view a table that shows the type of informat to use with big endian and little endian integers, see SAS Informats and Byte Ordering.

To view a table that compares integer binary notation in several programming languages, see Integer Binary Notation and Programming Languages.

You can use the INPUT statement and specify the PIB informat. However, in these examples we use the informat with the INPUT function, where binary input values are described by using a hex literal.

```x=input('0100'x,pib2.);
y=input('0001'x,pib2.);```

SAS Statements
Results on BigEndian Platforms Results onLittle Endian Platforms
```put x=;
put y=;```
```256
1```
```1
256```

 Informat: