| Formats under z/OS |
| 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 |
| Details | |
| See Also |
| Details |
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)
| See Also |
Format: S370FPDw.d in SAS Language Reference: Dictionary
Informat: PDw.d Informat: z/OS
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.