Floating Point Numbers

Download Report

Transcript Floating Point Numbers

ITEC 1000 “Introduction to Information Technology”
Lecture 5
Floating Point Numbers
1
Lecture Template:
Floating Point Numbers
 Exponential Notation
 Excess-50 Notation
 Overflow and Underflow
 Floating Point Calculations
 Normalization in Floating Point
 IEEE 754 Standard
 Packed Decimal Format
 Programming Considerations

2
Floating Point Numbers
Real numbers
 Used in computer when the number

is outside the integer range of the
computer (too large or too small)
contains a decimal fraction
the range in PC’s:
38
r10  number
or more
 10 38
3
Exponential Notation

The following are equivalent
representations of 1,234
123,400.0
x 10-2
12,340.0
x 10-1
1,234.0
x 100
123.4
x 101
12.34
1.234
x 102
x 103
The representations differ
in that the decimal place –
the “point” -- “floats” to
the left or right (with the
appropriate adjustment in
the exponent).
0.1234 x 104
4
Exponential Notation


Also called scientific notation
12345 x 100
0.12345 x 105
123450000 x 10-4
4 specifications required for a number
1.
2.
3.
4.

12345
Sign (“+” in example)
Magnitude or mantissa (12345)
Sign of the exponent (“+” in 105)
Magnitude of the exponent (5)
Plus
5.
6.
Base of the exponent (10)
Location of decimal point (or other base) radix point
5
Parts of a Floating Point Number
-0.9876 x
Sign of
mantissa
Location of
decimal point
Mantissa
-3
10
Exponent
Sign of
exponent
Base
6
Floating Point Format Specification

Integer format (8-bit word)
7 decimal digits and a sign
Range: -9,999,999 < I < +9,999,999

Floating point format (8-bit word)
Sign of the mantissa
SEEMMMMM
2-digit Exponent
5-digit Mantissa
7
Format



Mantissa: stored in sign-magnitude format
Assume decimal point located at the beginning
of mantissa
Exponent stored in Excess-N notation:
Complementary notation
Pick middle value as offset where N is the
middle value: 0..99
e.g., excess-50
Representation
0
49
50
99
Exponent being
represented
-50
-1
0
49
– Increasing magnitude
+
8
Excess-50 notation
Excess-N representation: R = N + EE
 Example1: N = 50, EE = 38, R = 88
 Example2: N = 50, EE = -38, R = 12
 Excess-50: Magnitude range

0.00001 x 10
50
 number  0.99999 x 10
49
9
Overflow and Underflow

Possible for the number to be too large
or too small for representation
0.00001 x 10-50 = 10-55
10
Floating Point Format: Excess-50

First digit represents the sign of
mantissa
0 is used as a “+“sign
5 is used as a “-“sign (arbitrarily)
Two next digits represent exponent
in excess-50
 Five last digits represent mantissa

fixed decimal point located at the
beginning
11
Examples
05324567
=
0.24567 x 103
=
246.57
54810000
=
– 0.10000 X 10-2
=
– 0.0010000
5555555
=
– 0.55555 x 105
=
– 55555
04925000
=
0.25000 x 10-1
=
0.025000
12
Normalization


Shift numbers left by increasing the
exponent until leading zeros eliminated
Converting decimal number into standard
format
Provide number with exponent (0 if not yet
specified)
2. Increase/decrease exponent to shift decimal
point to proper position
3. Decrease exponent to eliminate leading zeros
on mantissa
4. Correct precision by adding 0’s or
discarding/rounding least significant digits
1.
13
Example 1: 246.8035
1. Add exponent
246.8035 x 100
2. Position decimal point
.2468035 x 103
3. Already normalized
4. Cut to 5 digits
5. Convert number
.24680 x 103
05324680
Sign
Excess-50 exponent
Mantissa
14
Example 2: 1255 x 10-3
1. Already in exponential
form
2. Position decimal point
1255x 10-3
0.1255 x 10+1
3. Already normalized
4. Add 0 for 5 digits
0.12550 x 10+1
5. Convert number
05112550
15
Example 3: - 0.00000075
1. Exponential notation
- 0.00000075 x 100
2. Decimal point in position
3. Normalizing
- 0.75 x 10-6
4. Add 0 for 5 digits
- 0.75000 x 10-6
5. Convert number
54475000
16
Floating Point Calculations

Addition and subtraction
Exponent and mantissa treated
separately
Exponents of numbers must agree
Align decimal points
Least significant digits may be lost
Mantissa overflow requires exponent
again shifted right
17
Example
Add 2 floating point numbers
05199520
+ 04967850
Align exponents
05199520
0510067850
Add mantissas; (1) indicates a
carry
(1)0019850
Carry requires right shift
05210019(850)
Round
05210020
Check results
05199520 = 0.99520 x 101 =
04967850 = 0.67850 x 10-1 =
9.9520
0.06785
Precision lost
= 10.01985
In exponential form
=
0.1001985 x 102
18
Multiplication and Division


Mantissas: multiplied or divided
Exponents: added or subtracted
Normalization necessary to
Restore location of decimal point
Maintain precision of the result
Adjust excess value since added twice
Example: 2 numbers with exponent = 53 represented
in excess-50 notation
53 + 53 =106
Since 50 added twice, subtract: 106 – 50 =56

Maintaining precision:
Normalizing and rounding multiplication
19
Example
Multiply 2 numbers
x
Add exponents, subtract offset
05220000
04712500
52 + 47 – 50 = 49
Multiply mantissas
0.20000 x 0.12500 = 0.025000000
Normalize the results
04825000
Check results
05220000 = 0.20000 x 102
04712500 = 0.125 x 10-3
= 0.0250000000 x 10-1
Normalizing and rounding
=
0.25000 x 10-2
20
Floating Point in the Computer


Replace digits with “0” and “1” bits
Typical floating point format
32 bits provide range ~10-38 to 10+38
8-bit exponent = 256 levels
Excess-128 notation
23 bits of mantissa: approximately 7 decimal digits of
precision
21
IEEE 754 Standard

Most common standard for representing
floating point numbers

Single precision: 32 bits, consisting of...
Sign bit (1 bit)
Exponent (8 bits)
Mantissa (23 bits)

Double precision: 64 bits, consisting of…
Sign bit (1 bit)
Exponent (11 bits)
Mantissa (52 bits)
22
Single Precision Format
32 bits
Mantissa (23 bits)
Exponent (8 bits)
Sign of mantissa (1 bit)
23
Double Precision Format
64 bits
Mantissa (52 bits)
Exponent (11 bits)
Sign of mantissa (1 bit)
24
IEEE 754 Standard
Precision
Single
(32 bit)
Double
(64 bit)
Sign
1 bit
1 bit
Exponent
8 bits
11 bits
Notation
Excess-127
Excess-1023
2
2
2-126 to 2127
2-1022 to 21023
Mantissa
23
52
Decimal digits
7
 15
 10-45 to 1038
 10-300 to 10300
Implied base
Range
Value range
25
IEEE 754 Standard

32-bit Floating Point Value Definition
Exponent
Mantissa
Value
0
±0
0
0
Not 0
±2-126 x 0.M
1-254
Any
±2-127 x 1.M
255
±0
±
255
not 0
special
condition
26
Normalization in Floating Point

Mantissa:
Must always start with “1”
Leading bit is not stored
Implied that it is located to the left of the binary point
Normalized Form: 1.MMMMMMM…
E.g.:
Mantissa:
Actual value:

10100000000000000000000
1.1012 = 1.62510
Exponent
Formatted using Excess-127 notation
Base 2 is implied
Range: 2-126 to 2127
27
Excess Notation: Example
Represent exponent of 1410 in excess-127 form:
12710
=
+ 011111112
1410
=
+ 000011102
Representation
=
100011012
14110
28
Excess Notation: Example
Represent exponent of -810 in excess 127 form:
12710
=
+ 011111112
- 810
=
- 000010002
Representation
=
011101112
11910
29
Single Precision: Example
0 10000010 11000000000000000000000
1.112 = 1.7510
130 – 127 = 3
0 = positive mantissa
+1.75  23 = 14.0
or +1.112  23 = +1110.0 =14
30
Single Precision: Exercise

What decimal value is represented
by the following 32-bit floating
point number?
1 10000010 11110110000000000000000

Answer:
Skip answer
Answer
31
Single Precision: Exercise
Answer

What decimal value is represented
by the following 32-bit floating
point number?
1 10000010 11110110000000000000000

Answer:
-15.6875
32
Step by Step Solution
1 10000010 11110110000000000000000
To decimal form
130 - 127 = 3
1.11110110000000000000000000
1 + .5 + .25 + .125 + .0625 + 0 + .015625 + .0078125
23 * 1.9609375
( negative )
= 15.6875
- 15.6875
33
Step by Step Solution :
Alternative Method
1 10000010 11110110000000000000000
To decimal form
130 - 127 = 3
1.11110110000000000000000000
Shift “Point”
1111.10110000000000000000000
( negative )
- 15.6875
34
IBM floating point formats
35
Alpha floating point formats
36
Exercise: Floating Point Conversion

Express 3.14 as a 32-bit floating
point number
Answer:
(Note: only use 10 significant bits for
the mantissa)
Skip answer
Answer
37
Exercise: Floating Point Conversion
Answer

Express 3.14 as a 32-bit floating
point number
Answer: 0 10000000 10010001111000000000000
(Note: only use 10 significant bits for
the mantissa)
38
Detail Solution : 3.14 to IEEE
double precision
3.14 To Binary (approx):
Delete implied left-most “1”
and normalize
Exponent = 127 + 1 position
point moved when normalized
11.001000111101
Prove !
1001000111101
10000000
Value is positive: Sign bit = 0
0 10000000 10010001111010000000000
39
Packed Decimal Format
Limited use: e.g: where precision
particularly important, as in accounting
and business functions.
Similar to BCD: e.g: four bit
representation, as in BCD.
-> Stores two digits per byte.
Supported by business-oriented languages
like COBOL
Implemented in IBM System 370/390 and
Compaq Alpha
40
Packed Decimal Format

Each decimal digit is stored in BCD
Two digits in a byte



The most significant digit – stored first, in the high-order
bits of the first byte
Can store up to 31 digits in 16 bytes
The sign is stored in the low-order bits of the last byte
Binary 1100 represents “+”
Binary 1101 represents “-”
Binary 1111 represents unsigned number

Decimal point not stored: must be maintained by application
software
41
Packed Decimal Format: Example 1
Decimal Value:
1 0 3 5 7, unsigned
Packed Decimal: 0001 0000 0011 0101 0111 1111
Byte 1
Byte 2
Byte 3
42
Packed Decimal Format: Example 2
Decimal Value:
- 90 4 1 3
Packed Decimal: 1001 0000 0100 0001 0011 1101
Byte 1
Byte 2
Byte 3
43
Integer vs. Floating Point:
Programming Considerations

Integer advantages
Easier for computer to perform
Potential for higher precision
Faster to execute
Fewer storage locations to save time and space

Most high-level languages provide 2 or
more different integer word sizes/formats:
Short integer (16 bits)
Long integer (64 bits)
44
Integer vs. Floating Point:
Programming Considerations

Real numbers, if:
Variable or constant has fractional part
 Numbers take on very large or very
small values outside integer range
 Program should use least precision
sufficient for the task
 Higher precision formats require more
storage
 Packed decimal attractive alternative for
business applications

45
Computer humour 
46