You are on page 1of 12

IEEE 754 Floating

Point
Luddy Harrison
CS433G
Spring 2007

What is represented
Real

numbers

5.6745
1.23 1019

Remember

however that the representation is


finite, so only a subset of the reals can be
represented

No trancendentals
Limited range
Limited precision (number of digits)

Normalizing Numbers
In

Scientific Notation, we generally choose


one digit to the left of the decimal point

13.25 1010 becomes 1.325 1011

Normalizing

means

Shifting the decimal point until we have the right


number of digits to its left (normally one)
Adding or subtracting from the exponent to reflect
the shift

Binary Floating Point


A

binary number in scientific notation is called


a floating point number
Examples:

1.001 217
0.001 2-13

Parts of a floating point number

1.mmmmmmm Beeee

A signed fixed-point fraction (1.mmmmmmm) called the mantissa

For non-zero mantissas, the leading 1 is implicit

See the previous lecture for the meaning of fixed point fractions

An implicit base B
A unsigned integer (eeee) called the exponent

That is, it is not present in the representation (bit pattern), but it is assumed to
be there when interpreting the bit pattern

An implicit bias. The actual exponent is eeee bias

Some bit patterns are reserved for special values

Not A Number

About IEEE 754


This

standard defines several floating point


types and the meaning of operations (+, ,
etc.) on them

It

Single
Double
Extended Precision

deals at length with the thorny questions of


Erroneous and exceptional results
Rounding and conversion

32-bit Single Precision


S
1

23
-1S 1.M 2E - 127

E is an unsigned twos-complement integer. A bias of 127 is


used, so that the actual exponent is E 127.
Exponents 00000000 and 11111111 are reserved for
special purposes
The sign bit of the mantissa is separated from magnitude
bits of the mantissa. The mantissa is therefore an unsigned
fixed point fraction with an implicit 1 to the left of the binary
point.
All zero bits (S, E, and M) means zero (0). In this case
there is no leading 1 mantissa bit implied.

Some examples
0

0
= 0 (note that there is no implicit leading 1 here)

100

10100000
= -1 1.101 24-127 = -13/8 2-123

11111110

00000000
= 1.0 2254-127 = 1 2127

Denormalized Numbers
0

00000000

00000001
= 0.00000001 2-126

An exponent field of zero is special; it


indicates that there is no implicit leading 1
on the mantissa. This allows very small
numbers to be represented. Note that we
cannot normalize this value. (Why?) Zero
is effectively a denorm (and it cannot be
normalized why?)
0

11111110

00000001
= 1.00000001 2254-127 = 1.00000001 2127

Here, the mantissa has an implicit leading 1. If


we wanted 0.00000001 2127 we could obtain
it by writing 1.0 2104.

64-bit Double Precision


S
1

11

52
-1S 1.M 2E - 1023

E is an unsigned twos-complement integer. A bias of 1023


is used, so that the actual exponent is E 1023.
As before, an exponent of all 0 bits or all 1 bits is
reserved for special values.
As before, the mantissa is an unsigned fixed point fraction
with an implicit 1 to the left of the binary point. The sign of
the entire number is held separately in S.
A representation of all zero bits (S, E, and M) means zero
(0). In this case there is no leading 1 mantissa bit implied.

Infinity
0

11111111

0
= +

11111111

0
= -

Not A Number
x

11111111

11111111

1xxxxxxx
Quiet NaN

11111111

0xxxxxxx 0
Signalling NaN

You might also like