0% found this document useful (0 votes)
58 views24 pages

ELEC2041 Microprocessors and Interfacing Lectures 19: Floating Point Number Representation - I

This document discusses floating point number representation in computers. It covers decimal and binary scientific notation, the tradeoff between range and precision with different representations, and the IEEE 754 standard for floating point numbers. The standard uses a biased exponent field and orders the sign, exponent, and significand fields to enable comparisons using integer operations. Single and double precision formats are explained.

Uploaded by

Raj Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views24 pages

ELEC2041 Microprocessors and Interfacing Lectures 19: Floating Point Number Representation - I

This document discusses floating point number representation in computers. It covers decimal and binary scientific notation, the tradeoff between range and precision with different representations, and the IEEE 754 standard for floating point numbers. The standard uses a biased exponent field and orders the sign, exponent, and significand fields to enable comparisons using integer operations. Single and double precision formats are explained.

Uploaded by

Raj Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

ELEC2041 Microprocessors and Interfacing Lectures 19: Floating Point Number Representation I http://webct.edtec.unsw.edu.

au/

April 2006
Saeid Nooshabadi

[email protected]
ELEC2041 lec19-fp-I.1 Saeid Nooshabadi

Overview Floating Point Numbers Motivation: Decimal Scientific Notation


Binary Scientific Notation

Floating Point Representation inside computer (binary)


Greater range, precision

IEEE-754 Standard

ELEC2041 lec19-fp-I.2

Saeid Nooshabadi

Review of Numbers Computers are made to deal with numbers What can we represent in N bits?
Unsigned integers: 0 -2(N-1) to 2N - 1 to 2(N-1) - 1 Signed Integers (Twos Complement)

ELEC2041 lec19-fp-I.3

Saeid Nooshabadi

Other Numbers What about other numbers?


Very large numbers? (seconds/century) 3,155,760,00010 (3.1557610 x 109)
Very small numbers? (atomic diameter) 0.0000000110 (1.010 x 10-8) Rationals (repeating pattern) 2/3 (0.666666666. . .)

Irrationals 21/2

(1.414213562373. . .)

Transcendentals e (2.718...), (3.141...)

All represented in scientific notation


ELEC2041 lec19-fp-I.4 Saeid Nooshabadi

Scientific Notation Review fraction Exponent mantissa/significand 02 x 1023 6 6.02 Integer decimal point radix (base)
Normalized form: no leadings 0s (exactly one digit to left of decimal point)

Alternatives to representing 1/1,000,000,000


Normalized: Not normalized:
ELEC2041 lec19-fp-I.5

1.0 x 10-9 0.1 x 10-8,10.0 x 10-10


Saeid Nooshabadi

How to represent 0 in Normalized form?

Interesting Properties Finite precision


i.e. the number of bits in which to represent the significand and exponent is limited.

Thus not all non-integer values can be represented exactly.

d3 Example: represent 1.32 as d1d2.f1 x 10 (only one digit after the decimal point)

ELEC2041 lec19-fp-I.6

Saeid Nooshabadi

Floating Point Number Range vs Precision (#1/4)

For simplicity, assume integer Representation for Significand. Represent N by d1d2d3, where
d3 Case 1) N = d1d2 x 10 d2d3 Case 2) N = d1 x 10 d3 Case 3) N = d1d2 x 100

ELEC2041 lec19-fp-I.7

Saeid Nooshabadi

Floating Point Number Range vs Precision (#2/4)

Which representation can represent the largest value?

d3 Case 1) N = d1d2 x 10 d2d3 Case 2) N = d1 x 10 d3 Case 3) N = d1d2 x 100

9 10 N = 99 x 10 = 9.9 x 10 N = 9 x 10 99

9 19 N = 99 x 100 = 9.9 x 10

ELEC2041 lec19-fp-I.8

Saeid Nooshabadi

Floating Point Number Range vs Precision (#3/4)

In which representation can the most different values be represented?


All can represent the same number of different values. Two of the systems can represent an equal number of values, more than the third. #3 can represent more values than the other two. #2 can represent more values than the other two. #1 can represent more values than the other two
Saeid Nooshabadi

d3 Case 1) N = d1d2 x 10 d2d3 Case 2) N = d1 x 10 d3 Case 3) N = d1d2 x 100

ELEC2041 lec19-fp-I.9

Floating Point Number Range vs Precision (#4/4)

In which representation can the most different values be represented?


d3 Case 1) N = d1d2 x 10 99 x 10 + 1 9 x 9 = 910
d (9 x 9) because 0d2 x 10 3 d3 1 = d20 x 10 when d3>0

d2d3 Case 2) N = d1 x 10 9 x 100 + 1 = 901 d3 Case 3) N = d1d2 x 100 99 x 10 + 1 9 x 9 = 910


ELEC2041 lec19-fp-I.10

and d2>0

All can represent the same number of different values. Two of the systems can represent an equal number of values, more than the third. #3 can represent more values than the other two. #2 can represent more values than the other two. #1 can represent more values than the other two

Saeid Nooshabadi

Scientific Notation for Binary Numbers

significand 1.0two x 2-1


binary point

exponent radix (base)

Computer arithmetic that supports it is called floating point, because it represents numbers where binary point is not fixed, as it is for integers
Declare such variable in C as float

ELEC2041 lec19-fp-I.11

Saeid Nooshabadi

Properties of a good FP Number rep.


Represents many useful numbers
most of the 2N possible are useful How many LARGE? How many small?

Easy to do arithmetic ( +, -, *, / )

Easy to do comparison ( ==, <, > )


Nice mathematical properties
A != B => A - B != 0

ELEC2041 lec19-fp-I.12

Saeid Nooshabadi

Floating Point Representation (#1/2) Normal format: +1.xxxxxxxxxxtwo*2yyyytwo Multiple of Word Size (32 bits)
31 30 23 22 S Exponent
1 bit 8 bits Significand 23 bits 0

S represents Sign Exponent represents ys Significand represents xs Leading 1 in Significand is implied Represent numbers as small as 2.0 x 10-38 to as large as 2.0 x 1038
ELEC2041 lec19-fp-I.13 Saeid Nooshabadi

Floating Point Representation (#2/2) What if result too large? (> 2.0x1038 )
Overflow!
Overflow => Exponent larger than represented in 8-bit Exponent field

What if result too small? (<0 x < 2.0x10-38 )


Underflow! Underflow => Negative exponent larger than represented in 8-bit Exponent field

How to reduce chances of overflow or underflow?


ELEC2041 lec19-fp-I.14 Saeid Nooshabadi

Double Precision Fl. Pt. Representation Next Multiple of Word Size (64 bits)
31 30 20 19 S Exponent 1 bit 11 bits Significand

20 bits Significand (contd) 32 bits

Double Precision (vs. Single Precision)


C variable declared as double Represent numbers almost as small as 2.0 x 10-308 to almost as large as 2.0 x 10308 But primary advantage is greater accuracy due to larger significand
ELEC2041 lec19-fp-I.15 Saeid Nooshabadi

Fl. Pt. Hardware


Microprocessors do floating point computation using a special coprocessor.
works under the processor supervision Has its own set of registers

Most low end processors do not have Ft. Pt. Coprocessors


ARM processor on DSLMU board does not have Ft. Pt. Coprocessor Ft. Pt. Computation by software emulation Ft. Pt. Emulator: A student mini project on: http://dsl.ee.unsw.edu.au/unsw/projects/armv fp/README.html. (Closely mimics hardware) Some high end ARM processors do have coprocessor hardware support.
Saeid Nooshabadi

ELEC2041 lec19-fp-I.16

IEEE 754 Floating Point Standard (#1/6) Single Precision, (DP similar) Sign bit: Significand:
To pack more bits, leading 1 implicit for normalized numbers. (Hidden Bit)
1 + 23 bits single, 1 + 52 bits double

1 means negative 0 means positive

always true: 0 < Significand < 1 (for normalized numbers)

What about Zero? Next Lecture


ELEC2041 lec19-fp-I.17 Saeid Nooshabadi

IEEE 754 Floating Point Standard (#2/6)


Kahan* wanted FP numbers to be used even if no FP hardware; e.g., sort records with FP numbers using integer compares
Wanted Compare to be faster, by means of a single compare operation, used for integer numbers, especially if positive FP numbers How to order 3 parts (Sign, Significand and Exponent) to simplify compare? The Author of IEEE 754 FP Standard http://www.cs.berkeley.edu/~wkahan/ ieee754status/754story.html
ELEC2041 lec19-fp-I.18 Saeid Nooshabadi

IEEE 754 Floating Point Standard (#3/6)


How to order 3 Fields in a Word?

+1.xxxxxxxxxxtwo*2yyyytwo Natural: Sign, Fraction, Exponent?


Problem: If want to sort using integer compare operations, wont work: 1.0 x 220 vs. 1.1 x 210 ; latter looks bigger!

0 10000 10100

0 11000 01010

Exponent, Sign, Fraction?


Need to get sign first, since negative < positive

Therefore order is Sign Exponent Fraction 1.0 x 1020 > 1.1 x 1010
S Exponent
ELEC2041 lec19-fp-I.19

Significand
Saeid Nooshabadi

IEEE 754 Floating Point Standard (#4/6)


Want compare Fl.Pt. numbers as if integers, to help in sort
Sign first part of number
Exponent next, so big exponent => bigger No.

Negative Exponent?
2s comp? 1.0 x 2-1 vs 1.0 x2+1 (1/2 vs 2)

1/2 0 1111 1111 000 0000 0000 0000 0000 0000 2 0 0000 0001 000 0000 0000 0000 0000 0000
This notation using integer compare of 1/2 vs 2 makes 1/2 > 2!
ELEC2041 lec19-fp-I.20 Saeid Nooshabadi

IEEE 754 Floating Point Standard (#5/6) Instead, pick notation: 0000 0000 is most negative, 1111 1111 is most positive
Called Biased Notation; bias subtracted to get number 127 in Single Prec. (1023 D.P.)

-127 0000 0000 -126 0000 0001 ... -1 0111 1110 0 0111 1111 +1 1000 0000 ... +127 1111 1110 +128 1111 1111

2s comp? 1.0 x 2-1 vs 1.0 x 2+1 (1/2 vs 2) 1/2 0 0111 1110 000 0000 0000 0000 0000 0000 2 0 1000 0000 000 0000 0000 0000 0000 0000
This notation using integer compare of 1/2 vs 2 makes 2 look greater than 1/2
ELEC2041 lec19-fp-I.21 Saeid Nooshabadi

IEEE 754 Floating Point Standard (#6/6) Summary (single precision):


31 30 23 22 S Exponent 1 bit 8 bits Significand 23 bits 0

(-1)S x (1 + Significand) x 2(Exponent-127)

Double precision identical, except with exponent bias of 1023

ELEC2041 lec19-fp-I.22

Saeid Nooshabadi

Floating Point Number Distribution Which numbers can be represented?


-8 -7 -6 -5 -4 -3 -2 -1 0 -1.000 x 22 -1.000 x 21 -1.000 x 20
1.000 x 2-2
1.000 x 2-3

1 1.000 x 20
1.000 x 2-1

2 1.000 x 21

3 4

-1.000 x 23

Using mantissa of 1.000 and positive exponents

and Sign bit


and negative exponents in each of the intervals of exponentially increasing size can represent 2S (s=3 here) numbers of uniform difference

But how do we represent 0? Next Lecture!


ELEC2041 lec19-fp-I.23 Saeid Nooshabadi

1.000 x 22 1.001 x 22 1.010 x 22 1.011 x 22 1.100 x 22 1.101 x 22 1.110 x 22 1.111 x 22 1.000 x 23

And in Conclusion..
Number of digits allocated to significand and exponent, and choice of base, can affect both the number of different representable values and the range of values. Finite precision means we have to cope with roundoff error (arithmetic with inexact values) and truncation error (large values overwhelming small ones).

IEEE 754 Standard allows Single Precision (1 word) and Double Precision (2-word) representation of FP. Nos.
ELEC2041 lec19-fp-I.24 Saeid Nooshabadi

You might also like