There are two issues here that need to be disentangled.

Storage representations of packed-decimal values always contain an odd
number of digits, viz., one of 1, 3, 5, . . . , 2i - 1, . . . , 31 for
i - 1, 2, 3, . . . , 16.

If now in COBOL you declare a number of digits d for a computational-3
value, storage for floor[(d+1)/2] bytes is always allocated, and the
leftmost, high-order digit participates in all arithmetic operations.

You can arrange to ensure that the compiler will force this leftmost
packed-decimal digit to be 0 in most circumstances.  Doing so will
involve the use of a good many extra instructions, and it is always
and everywhere a bad practice.

The use of an even number of digits in the declaration of a
packed-decimal/computational-3 value is in fact an all but infallible
diagnostic of incompetence.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to