matthewstorey.co.uk
In this section Binary Coded Decimal | Binary | Character Numeric Edited | Packed Decimal | Text | Zoned Decimal

Binary

About

Stores numbers using the binary representation of the value.

Certain processors, like those from Intel, work in little-endian binary format. The majority of other platforms, like OS/390 and Solaris, work in big-endian binary format.

Negative values are stored as the two's complement representation of the value.

In COBOL on the PC:

On other platforms, like OS/390, the 'COMP' data type is big-endian binary and you can not represent little-endian binary values.

Big-endian means that the MSB (Most Significant Byte) of the number comes first.
Little-endian means that the LSB (Least Significant Byte) of the number comes first.

Limits

OS/390 COBOL programs can only handle a maximum of 18 digits (8 bytes).

Other

Also known as 'PCBS' and 'PCBU' on the PC.

Also known as 'MFBS' and 'MFBU' on OS/390.

Implied decimal places.

Use

Used on every platform.

Fastest data type for calculations on most platforms.

Back to top

Big-endian examples

Unsigned

     12345     is encoded in hex as    0033
                                       0009

     12345.67  is encoded in hex as    01D8
                                       0267
      

Signed

     +12345    is encoded in hex as    0033
                                       0009

     -12345.67 is encoded in hex as    FE27
                                       FD99
      

Little-endian examples

Unsigned

     12345     is encoded in hex as    3300
                                       9000

     12345.67  is encoded in hex as    8D10
                                       7620
            

Signed

     +12345    is encoded in hex as    3300
                                       9000

     -12345.67 is encoded in hex as    72EF
                                       99DF
      

Back to top

Binary field sizes

 No. of digits  No. of bytes (PC)  No. of bytes (OS/390)
1 1 (half-word) 2
2 1 2
3 2 2
4 2 2
5 3 (full-word) 4
6 3 4
7 *4 4
8 4 4
9 4 4
10 5 (double-word) 8
11 5 8
12 **6 8
13 6 8
14 6 8
15 7 8
16 7 8
17 8 8
18 8 8

* This is 3 for unsigned binary fields
** This is 5 for unsigned binary fields

Back to top