Writes values in IBM packed decimal format.
Numeric |
|
Width range: |
1-16 bytes
|
Default width: |
1
|
Decimal range: |
0-31
|
Alignment: |
left
|
z/OS specifics: |
IBM packed decimal format
|
See: |
PDw.d Format in
SAS Language Reference: Dictionary
|
In packed decimal format, each byte
represents two decimal digits. An IBM packed decimal number consists of a
sign and up to 31 digits, thus giving a range of 1031 -1
to -1031 + 1. The sign is written in the rightmost
nibble. (A nibble is four bits or half a byte.) A hexadecimal C indicates
a plus sign, and a hexadecimal D indicates a minus sign. The rest of the nibbles
to the left of the sign nibble represent decimal digits.
The hexadecimal values of these digit nibbles correspond to decimal values.
Therefore, only values between '0'x and '9'x can be used in the digit positions.
If an overflow occurs, the value that is written is
the largest value that fits into the output field; the value will be positive,
negative, or unsigned, as appropriate.
Here are several examples of packed decimal format:
Value |
Format |
Results (Hexadecimal) |
Notes |
-1234 |
pd3. |
01234D
|
|
1234 |
pd2. |
999C
|
overflow occurred |
1234 |
pd4. |
0001234C
|
|
1234 |
pd4.2 |
0123400C
|
a d value of 2 causes the number to be
multiplied by 102 |
Note: In these examples, the Value column
represents the value of the data, and the Results column shows a hexadecimal
representation of the bit pattern written by the corresponding format. (You
cannot view this data in a text editor, unless you can view it in hexadecimal
representation.) ![[cautionend]](../../../../common/63294/HTML/default/images/cautend.gif)
The PD
w.d format
writes missing numerical data as -0. When the PD
w.d
informat reads -0, the informat stores -0 as 0.
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.