Unisys (and Univac) Representations of Floating Point Numbers Using 36-bit Words

Univac traditionally used 6-bit bytes (not 8-bit bytes), complicating some translations. It is not unusual to see data which was originally 36 bits unpacked into six, 6-bit bytes. Then, each byte was packed with two extra zeroes so that what was six, six-bit bytes (36 bits total) became six, eight-bit bytes (48 bits total). This facilitated use by 32-bit hardware and software. For example, 9-track tapes would then frequently have six bits of data (on six tracks), two zero bits, or "zero fill" (on two tracks), and a parity bit on the 9th track. Be aware of these possibilities when reading old Univac/Unisys data.


Single Precision (one 36-bit word) floating point:

Unisys/Univac Floating Point Representations: "F_Floating" Structure (36 bits):
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Sign Bit Exponent (bias: 12810) Fraction: bit 26 is the most significant


Double Precision (two 36-bit words) floating point:

Unisys/Univac Floating Point Representations: Double Precision (72 bits): First 36-bit Word:
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Sign Bit Exponent (bias: 102410) Fraction (First, most significant part): bit 23 is the most significant

Unisys/Univac Floating Point Representations: Double Precision (72 bits): Second 36-bit Word:
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Fraction (Second, less significant part): bit 35 is the most significant bit in this word


EXPONENT (E): To the base 2, with a bias in the single precision floating point of 128 decimal (200 octal), and in the double precision floating point of 1024 decimal (2000 octal).

FRACTION: Has no hidden bit.