Floating-Point Representation We can store integers and characters easily in binary, but what about fractions? ¼ =.25 = 2.5 * * – m e- - mass of an electron * – e – charge of an electron * – h – plank’s constant What are the components of the above #’s?
Moving to Binary * – m e- - mass of an electron What would the equivalent be in binary? ___________ SignExponentSignificand Single Precision 1 bit8 bits23 bits Double Precision 1 bit11 bits52 bits
Interpreting Floating-point = 9 + 4*.1 + 7* *.001 The i th bit to the right of the decimal point of a decimal number represents______ The i th bit to the right of the decimal point of a binary number represents _______
Translating to Binary 1.Translate left of decimal normally 2.Translate the right of the decimal a.bit-by-bit *or* b.Express as fraction, x/ 2 y, and place x in y bits, filling to the left with 0’s. 3.Multiply by 2 y to move decimal to proper position.
Example 1 – Translate the 7.75 = -1/4 = ¼ =
following numbers into binary fp SignExpSignificand
Bias Notation Problem: Negative exponents have larger value than positive exponents Solution: –Adjust exponent range –add ____ to all exponents
SignExpSignificand … … … … /4 1/ /4 1/4 No Bias Bias
Floating-Point Addition How do we do decimal floating-point? Is it the same as integer addition? /8
Steps to floating-point addition 1.Right-shift _________ of smaller exponent until exponents match 2.Add the __________ 3.______ to adjust decimal point 4.Round the result to fit into the significand
Example 1: ¾ two * two * 2 -1
Example 2: 1.1 two * two * 2 2
Associative property (a + b) + c a + (b + c)
a + (b + c) 1.1 two * two * two * 2 2
(a + b) + c (1.1 two * two * 2 2 ) two * 2 2
Multiplication two * 2 2 * 1.1 two * 2 -2
Multiplication 1.________ exponents 2.________ significands 3.________ decimal point 4.________ answer 5.determine the _______
What about bias notation? two * * 1.1 two *
Thought question Some computers have separate fp and integer register files Most instructions access only int or fp, not both. How is this different from doubling the size of the register file? What are the advantages? Disadvantages?
Thought question
Summary Floating-point greatly increases range of numbers stored in machine. Floating-point representation has limited precision – can not store every number in range. FP arithmetic sometimes rounds answers, violating algebraic properties. FP arithmetic is much slower than integer arithmetic.