<P> The decimal point is not actually stored in memory, as the packed BCD storage format does not provide for it . Its location is simply known to the compiler and the generated code acts accordingly for the various arithmetic operations . </P> <P> If a decimal digit requires four bits, then three decimal digits require 12 bits . However, since 2 (1,024) is greater than 10 (1,000), if three decimal digits are encoded together, only 10 bits are needed . Two such encodings are Chen--Ho encoding and densely packed decimal (DPD). The latter has the advantage that subsets of the encoding encode two digits in the optimal seven bits and one digit in four bits, as in regular BCD . </P> <P> Some implementations, for example IBM mainframe systems, support zoned decimal numeric representations . Each decimal digit is stored in one byte, with the lower four bits encoding the digit in BCD form . The upper four bits, called the "zone" bits, are usually set to a fixed value so that the byte holds a character value corresponding to the digit . EBCDIC systems use a zone value of 1111 (hex F); this yields bytes in the range F0 to F9 (hex), which are the EBCDIC codes for the characters "0" through "9". Similarly, ASCII systems use a zone value of 0011 (hex 3), giving character codes 30 to 39 (hex). </P> <P> For signed zoned decimal values, the rightmost (least significant) zone nibble holds the sign digit, which is the same set of values that are used for signed packed decimal numbers (see above). Thus a zoned decimal value encoded as the hex bytes F1 F2 D3 represents the signed decimal value − 123: </P>

A coding standard using at least 16 bits