Re: What about big integers in Ada 2005?




"Robert A Duff" <bobduff@xxxxxxxxxxxxxxxxxxxx> wrote in message
news:wccr7b1clr7.fsf@xxxxxxxxxxxxxxxxxxxxxxx
> <adaworks@xxxxxxxxxxxxx> writes:
>
> > BCD, and its cousins, including packed decimal, are used widely in the
> > business data processing world. Files are stored in these formats. At
> > present, it is rather a nuisance to try to use Ada for reading these files.
> > Not impossible, but not convenient either.
>
> But Ada _does_ support packed decimal -- see F.1(2).
>
> By the way, what's the difference between packed decimal and BCD
> -- I thought they were the same thing. (...shows how much I know
> about business data processing)
>
BCD was originally a six bit (where 7 was a parity bit) representation. With
the advent of the byte on the IBM System 360, BCD became Extended Binary
Coded Decimal Interchange Code (EBCDIC).

In COBOL for the 360, we had several Picture clauses available.

05 Item-1 PICTURE XXX . which would be represented by
EBCDIC
05 Number PICTURE S99999. which would also be EBCDIC
05 Hnumber PICTURE S99999 Usage Comp-3. which would be packed

decimal.

COMP-3 represented the numeric PICTURE by using a half-byte (nibble) for each 9
in the picture and a nibble for the sign. In the example shown, Hnumber would
occupy
only three bytes where Number would occupy five bytes. In both cases, the
high-order
nibble is used for the sign.

There are actually some additional formats available including USAGE
COMPUTATIONAL
which is the same as representing a value in pure binary within the size of a
word.

I could write for a couple of hours on this topic, but I think this gets the
gist of the issue.

The central problem is that business data processing people use all of these
formats
at one time or another.

Richard Riehle


.