Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers....
-
date post
19-Dec-2015 -
Category
Documents
-
view
237 -
download
2
Transcript of Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers....
![Page 1: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/1.jpg)
Floating Point Numbers
CS208
![Page 2: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/2.jpg)
Floating Point Numbers
Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers with fractional parts (like: -12.5 & 45.39).
Called Floating Point numbers.
You will learn the IEEE 32-bit floating point representation.
![Page 3: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/3.jpg)
Floating Point Numbers
In the decimal system, a decimal point (radix point) separates the whole numbers from the fractional part
Examples:
37.25 ( whole = 37, fraction = 25/100)
123.567
10.12345678
![Page 4: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/4.jpg)
Floating Point Numbers
For example, 37.25 can be analyzed as:
101 100 10-1 10-2
Tens Units Tenths Hundredths
3 7 2 5
37.25 = (3 x 10) + (7 x 1) + (2 x 1/10) + (5 x 1/100)
![Page 5: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/5.jpg)
Binary Equivalence
The binary equivalent of a floating point number can be determined by computing the binary representation for each part separately.
1) For the whole part:
Use subtraction or division method previously learned.
2) For the fractional part:
Use the subtraction or multiplication method (to be shown next)
![Page 6: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/6.jpg)
Fractional Part – Multiplication Method
In the binary representation of a floating point number the column values will be as follows:
… 25 24 23 22 21 20 . 2-1 2-2 2-3 2-4 …
… 32 16 8 4 2 1 . 1/2 1/4 1/8 1/16…
… 32 16 8 4 2 1 . .5 .25 .125 .0625…
![Page 7: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/7.jpg)
Fractional Part – Multiplication Method
Ex 1. Find the binary equivalent of 0.25 Step 1: Multiply the fraction by 2 until the fractional part
becomes 0 .25 x 2 0.5
x 2 1.0
Step 2: Collect the whole parts in forward order. Put
them after the radix point
. .5 .25 .125 .0625 . 0 1
![Page 8: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/8.jpg)
Fractional Part – Multiplication Method
Ex 2. Find the binary equivalent of 0.625 Step 1: Multiply the fraction by 2 until the fractional part
becomes 0 .625 x 2 1.25
x 2 0.50
x 21.0
Step 2: Collect the whole parts in forward order. Put them after the radix point
. .5 .25 .125 .0625 . 1 0 1
![Page 9: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/9.jpg)
Fractional Part – Subtraction Method
Start with the column values again, as follows:
… 20 . 2-1 2-2 2-3 2-4 2-5 2-6…
… 1 . 1/2 1/4 1/8 1/16 1/32 1/64…
… 1 . .5 .25 .125 .0625 .03125 .015625…
![Page 10: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/10.jpg)
Fractional Part – Subtraction Method
Starting with 0.5, subtract the column values from left to right. Insert a 0 in the column if the value cannot be subtracted or 1 if it can be. Continue until the fraction becomes .0
Ex 1.
.25 .5 .25 .125 .0625 - .25 .0 1 .0
![Page 11: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/11.jpg)
Binary Equivalent of FP number
Ex 2. Convert 37.25, using subtraction method.
64 32 16 8 4 2 1 . .5 .25 .125 .0625
26 25 24 23 22 21 20 . 2-1 2-2 2-3 2-4
1 0 0 1 0 1 37 - 32
5 - 4
1-1
0
. 0 1 .25
- .25 .0
37.2510 = 100101.012
![Page 12: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/12.jpg)
Binary Equivalent of FP number
Ex 3. Convert 18.625, using subtraction method. 64 32 16 8 4 2 1 . .5 .25 .125 .0625 26 25 24 23 22 21 20 . 2-1 2-2 2-3 2-4
1 0 0 1 0 1 0 1
18 .625 - 16 - .5 2 .125
- 2 - .125 0 0
18.62510 = 10010.1012
![Page 13: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/13.jpg)
Try It Yourself
Convert the following decimal numbers to binary:
60.7510
190.562510
(Answers on next page)
![Page 14: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/14.jpg)
Answers
60.7510 = 111100.112
190.562510
= 10111110.10012
![Page 15: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/15.jpg)
Problem storing binary form
We have no way to store the radix point!
Standards committee came up with a way to store floating point numbers (that have a decimal point)
![Page 16: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/16.jpg)
IEEE Floating Point Representation
Floating point numbers can be stored into 32-bits, by dividing the bits into three parts:
the sign, the exponent, and the mantissa.
1 2 9 10 32
![Page 17: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/17.jpg)
IEEE Floating Point Representation
The first (leftmost) field of our floating point representation will STILL be the sign bit:
0 for a positive number, 1 for a negative number.
![Page 18: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/18.jpg)
Storing the Binary Form
How do we store a radix point?
- All we have are zeros and ones…
Make sure that the radix point is ALWAYS in the same position within the number.
Use the IEEE 32-bit standard
the leftmost digit must be a 1
![Page 19: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/19.jpg)
Solution is NormalizationEvery binary number, except the one corresponding to the number zero, can be normalized by choosing the exponent so that the radix point falls to the right of the leftmost 1 bit.
37.2510 = 100101.012 = 1.0010101 x 25
7.62510 = 111.1012 = 1.11101 x 22
0.312510 = 0.01012 = 1.01 x 2-2
![Page 20: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/20.jpg)
IEEE Floating Point Representation
The second field of the floating point number will be the exponent.
The exponent is stored as an unsigned 8-bit number, RELATIVE to a bias of 127. Exponent 5 is stored as (127 + 5) or 132
132 = 10000100 Exponent -5 is stored as (127 + (-5)) or 122
122 = 01111010
![Page 21: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/21.jpg)
Try It Yourself
How would the following exponents be stored (8-bits, 127-biased):
2-10
28
(Answers on next slide)
![Page 22: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/22.jpg)
Answers
2-10
exponent -10 8-bit
bias +127 value
117 01110101
28 exponent 8 8-bit
bias +127 value
135 10000111
![Page 23: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/23.jpg)
IEEE Floating Point Representation
The mantissa is the set of 0’s and 1’s to the left of the radix point of the normalized (when the digit to the left of the radix point is 1) binary number.
Ex: 1.00101 X 23
(The mantissa is 00101)
The mantissa is stored in a 23 bit field, so we add zeros to the right side and store:
00101000000000000000000
![Page 24: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/24.jpg)
Decimal Floating Point toIEEE standard Conversion
Ex 1: Find the IEEE FP representation of 40.15625
Step 1.
Compute the binary equivalent of the whole part and the fractional part. (i.e. convert 40 and .15625 to their binary equivalents)
![Page 25: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/25.jpg)
Decimal Floating Point toIEEE standard Conversion
40 .15625- 32 Result: -.12500 Result: 8 101000 .03125 .00101- 8 -.03125 0 .0
So: 40.1562510 = 101000.001012
![Page 26: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/26.jpg)
Decimal Floating Point toIEEE standard Conversion
Step 2. Normalize the number by moving the decimal point to the right of the leftmost one.
101000.00101 = 1.0100000101 x 25
![Page 27: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/27.jpg)
Decimal Floating Point toIEEE standard Conversion
Step 3. Convert the exponent to a biased exponent
127 + 5 = 132
And convert biased exponent to 8-bit unsigned binary:
13210 = 100001002
![Page 28: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/28.jpg)
Decimal Floating Point toIEEE standard Conversion
Step 4. Store the results from steps 1-3:
Sign Exponent Mantissa
(from step 3) (from step 2)
0 10000100 01000001010000000000000
![Page 29: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/29.jpg)
Decimal Floating Point toIEEE standard ConversionEx 2: Find the IEEE FP representation of –24.75 Step 1. Compute the binary equivalent of the whole
part and the fractional part.
24 .75- 16 Result: - .50 Result: 8 11000 .25 .11- 8 - .25 0 .0
So: -24.7510 = -11000.112
![Page 30: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/30.jpg)
Decimal Floating Point toIEEE standard Conversion
Step 2.
Normalize the number by moving the decimal point to the right of the leftmost one.
-11000.11 = -1.100011 x 24
![Page 31: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/31.jpg)
Decimal Floating Point toIEEE standard Conversion.
Step 3. Convert the exponent to a biased exponent
127 + 4 = 131
==> 13110 = 100000112 Step 4. Store the results from steps 1-3
Sign Exponent mantissa1 10000011 1000110..0
![Page 32: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/32.jpg)
Try It Yourself
Convert the following numbers to IEEE
floating point representation:
60.7510
-190.562510
![Page 33: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/33.jpg)
Answers
60.7510 =0 10000100 11100110..0
-190.562510 =1 10000110 011111010010..0
![Page 34: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/34.jpg)
IEEE standard to Decimal Floating Point Conversion.
Do the steps in reverse order
In reversing the normalization step move the radix point the number of digits equal to the exponent: If exponent is positive, move to the right If exponent is negative, move to the left
![Page 35: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/35.jpg)
IEEE standard to Decimal Floating Point Conversion.
Ex 1: Convert the following 32-bit binary number to its decimal floating point equivalent:
Sign Exponent Mantissa 1 01111101 010..0
![Page 36: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/36.jpg)
IEEE standard to Decimal Floating Point Conversion..
Step 1: Extract the biased exponent and unbias it
Biased exponent = 011111012 = 12510
Unbiased Exponent: 125 – 127 = -2
![Page 37: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/37.jpg)
Step 2: Write Normalized number in the form:
1 . ____________ x 2 ----
For our number:-1. 01 x 2 –2
IEEE standard to Decimal Floating Point Conversion..
Mantissa
Exponent
![Page 38: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/38.jpg)
IEEE standard to Decimal Floating Point Conversion.
Step 3: Denormalize the binary number from step 2 (i.e. move the decimal and get rid of (x 2n) part):
-0.01012 (negative exponent – move left)
Step 4: Convert binary number to the FP equivalent
(i.e. Add all column values with 1s in them)
-0.01012 = - ( 0.25 + 0.0625)
= -0.312510
![Page 39: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/39.jpg)
IEEE standard to Decimal Floating Point Conversion.
Ex 2: Convert the following 32 bit binary number to its decimal floating point equivalent:
Sign Exponent Mantissa
0 10000011 10011000..0
![Page 40: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/40.jpg)
IEEE standard to Decimal Floating Point Conversion..
Step 1: Extract the biased exponent and unbias it
Biased exponent = 10000112 = 13110
Unbiased Exponent: 131 – 127 = 4
![Page 41: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/41.jpg)
IEEE standard to Decimal Floating Point Conversion..
Step 2: Write Normalized number in the form:
1 . ____________ x 2 ----
For our number:
1.10011 x 2 4
Mantissa
Exponent
![Page 42: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/42.jpg)
IEEE standard to Decimal Floating Point Conversion.
Step 4: Convert binary number to the FP equivalent (i.e. Add all column values with 1s in them)
11001.1 = 16 + 8 + 1 +.5
= 25.510
Step 3: Denormalize the binary number from step 2 (i.e. move the decimal and get rid of (x 2n) part:
11001.12 (positive exponent – move right)
![Page 43: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/43.jpg)
Try It Yourself
Convert the following IEEE floating point numbers to decimal:
0 10000010 1110010..0
0 10000110 01010..0
1 01111101 10100..0
![Page 44: Floating Point Numbers CS208. Floating Point Numbers Now you've seen unsigned and signed integers. In real life we also need to be able represent numbers.](https://reader033.fdocuments.us/reader033/viewer/2022061618/56649d385503460f94a123a4/html5/thumbnails/44.jpg)
Answers
0 10000010 1110010..0 =15.12510
0 10000110 01010..0 =168.010
1 01111101 10100 =-0.4062510