Carnegie Mellon Floa ng Point 15 213 Introduc on to Computer Systems 3rd Lecture Aug 31 2010 Instructors Randy Bryant Dave O Hallaron Carnegie Mellon Today Floa ng Point Background Frac onal binary numbers IEEE oa ng point standard De ni on Example and proper es Rounding addi on mul plica on Floa ng point in C Summary 2 Carnegie Mellon Frac onal binary numbers What is 1011 1012 3 Carnegie Mellon Frac onal Binary Numbers 2i 2i 1 4 2 1 bi bi 1 b2 b1 b0 b 1 b 2 b 3 b j Representa on 1 2 1 4 1 8 2 j Bits to right of binary point represent frac onal powers of 2 Represents ra onal number 4 Carnegie Mellon Frac onal Binary Numbers Examples Value Representa on 5 3 4 2 7 8 101 112 010 1112 63 64 001 01112 Observa ons Divide by 2 by shi ing right Mul ply by 2 by shi ing le Numbers of form 0 111111 2 are just below 1 0 1 2 1 4 1 8 1 2i 1 0 Use nota on 1 0 5 Carnegie Mellon Representable Numbers Limita on Can only exactly represent numbers of the form x 2k Other ra onal numbers have repea ng bit representa ons Value Representa on 1 3 1 5 1 10 0 0101010101 01 2 0 001100110011 0011 2 0 0001100110011 0011 2 6 Carnegie Mellon Today Floa ng Point Background Frac onal binary numbers IEEE oa ng point standard De ni on Example and proper es Rounding addi on mul plica on Floa ng point in C Summary 7 Carnegie Mellon IEEE Floa ng Point IEEE Standard 754 Established in 1985 as uniform standard for oa ng point arithme c Before that many idiosyncra c formats Supported by all major CPUs Driven by numerical concerns Nice standards for rounding over ow under ow Hard to make fast in hardware Numerical analysts predominated over hardware designers in de ning standard 8 Carnegie Mellon Floa ng Point Representa on Numerical Form 1 s M 2E Sign bit s determines whether number is nega ve or posi ve Signi cand M normally a frac onal value in range 1 0 2 0 Exponent E weights value by power of two Encoding MSB s is sign bit s exp eld encodes E but is not equal to E frac eld encodes M but is not equal to M s exp frac 9 Carnegie Mellon Precisions Single precision 32 bits s exp 1 8 bits 23 bits Double precision 64 bits s exp 1 frac frac 11 bits 52 bits Extended precision 80 bits Intel only s exp 1 15 bits frac 63 or 64 bits 10 Carnegie Mellon Normalized Values Condi on exp 000 0 and exp 111 1 Exponent coded as biased value E Exp Bias Exp unsigned value exp Bias 2k 1 1 where k is number of exponent bits Single precision 127 Exp 1 254 E 126 127 Double precision 1023 Exp 1 2046 E 1022 1023 Signi cand coded with implied leading 1 M 1 xxx x2 xxx x bits of frac Minimum when 000 0 M 1 0 Maximum when 111 1 M 2 0 Get extra leading bit for free 11 Carnegie Mellon Normalized Encoding Example Value Float F 15213 0 1521310 111011011011012 1 11011011011012 x 213 Signi cand M frac 1 11011011011012 110110110110100000000002 Exponent E Bias Exp 13 127 140 100011002 Result 0 10001100 11011011011010000000000 s exp frac 12 Carnegie Mellon Denormalized Values Condi on exp 000 0 Exponent value E Bias 1 instead of E 0 Bias Signi cand coded with implied leading 0 M 0 xxx x2 xxx x bits of frac Cases exp 000 0 frac 000 0 Represents zero value Note dis nct values 0 and 0 why exp 000 0 frac 000 0 Numbers very close to 0 0 Lose precision as get smaller Equispaced 13 Carnegie Mellon Special Values Condi on exp 111 1 Case exp 111 1 frac 000 0 Represents value in nity Opera on that over ows Both posi ve and nega ve E g 1 0 0 0 1 0 0 0 1 0 0 0 Case exp 111 1 frac 000 0 Not a Number NaN Represents case when no numeric value can be determined E g sqrt 1 0 14 Carnegie Mellon Visualiza on Floa ng Point Encodings NaN Normalized Denorm 0 Denorm 0 Normalized NaN 15 Carnegie Mellon Today Floa ng Point Background Frac onal binary numbers IEEE oa ng point standard De ni on Example and proper es Rounding addi on mul plica on Floa ng point in C Summary 16 Carnegie Mellon Tiny Floa ng Point Example s exp frac 1 4 bits 3 bits 8 bit Floa ng Point Representa on the sign bit is in the most signi cant bit the next four bits are the exponent with a bias of 7 the last three bits are the frac Same general form as IEEE Format normalized denormalized representa on of 0 NaN in nity 17 Carnegie Mellon Dynamic Range Posi ve Only s exp Denormalized numbers Normalized numbers 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 frac E Value 0000 000 0000 001 0000 010 6 6 6 0 1 8 1 64 1 512 2 8 1 64 2 512 closest to zero 0000 0000 0001 0001 110 111 000 001 6 6 6 6 6 8 1 64 7 8 1 64 8 8 1 64 9 8 1 64 6 512 7 512 8 512 9 512 largest denorm 0110 0110 0111 0111 0111 110 111 000 001 010 1 1 0 0 0 14 8 1 2 15 8 1 2 8 8 1 9 8 1 10 8 1 14 16 15 16 1 9 8 10 8 7 7 n a 14 8 128 224 15 8 128 240 inf 1110 110 1110 111 1111 000 smallest norm closest to 1 below closest to 1 above largest norm 18 Carnegie Mellon Distribu on of Values 6 bit IEEE like format e 3 exponent bits f 2 frac on bits Bias is 23 1 1 3 s exp frac 1 3 bits 2 bits No ce how the distribu on gets denser toward zero 8 values 19 Carnegie Mellon Distribu on of Values close up view 6 bit IEEE like format e 3 exponent bits f 2 frac on bits Bias is 3 s exp frac 1 3 bits 2 bits 20 Carnegie Mellon Interes ng Numbers Descrip on exp single double frac Numeric Value Zero 00 00 Smallest Pos Denorm 00 00 Single 1 4 x 10 45 Double 4 9 x 10 324 Largest Denormalized 00 00 Single 1 18 x 10 38 Double 2 2 x 10 308 Smallest Pos Normalized 00 01 Just larger than largest denormalized 00 00 00 01 0 0 2 23 52 x 2 126 1022 11 11 1 0 x 2 126 1022 00 00 1 0 x 2 126 1022 One Largest Normalized Single 3 4 x 1038 Double 1 8 x …
View Full Document