Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Information Representation: Floating Point Representation.

Similar presentations


Presentation on theme: "Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Information Representation: Floating Point Representation."— Presentation transcript:

1 Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Information Representation: Floating Point Representation

2 Dale Roberts Fractional Numbers Examples: 456.78 10 = 4 x 10 2 + 5 x 10 1 + 6 x 10 0 + 7 x 10 -1 +8 x 10 -2 1011.11 2 = 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 1 x 2 0 + 1 x 2 -1 + 1 x 2 -2 = 8 + 0 + 2 + 1 + 1/2 + ¼ = 11 + 0.5 + 0.25 = 11.75 10 Conversion from binary number system to decimal system Examples: 111.11 2 = 1 x 2 2 + 1 x 2 1 + 1 x 2 0 + 1 x 2 -1 + 1 x 2 -2 = 4 + 2 + 1 + 1/2 + ¼ = 7.75 10 Examples: 11.011 2 2 2 2 1 2 0 2 -1 2 -2 2 - 3 4 2 1 ½ ¼ 1/8 2 1 0 -1 -2 -3 xxxx

3 Dale Roberts Conversion from decimal number system to binary system Examples: 7.75 10 = (?) 2 1. Conversion of the integer part: same as before – repeated division by 2 7 / 2 = 3 (Q), 1 (R)  3 / 2 = 1 (Q), 1 (R)  1 / 2 = 0 (Q), 1 (R) 7 10 = 111 2 2. Conversion of the fractional part: perform a repeated multiplication by 2 and extract the integer part of the result 0.75 x 2 =1.50  extract 1 0.5 x 2 = 1.0  extract 1 0.75 10 = 0.11 2 0.0  stop  Combine the results from integer and fractional part, 7.75 10 = 111.11 2  Combine the results from integer and fractional part, 7.75 10 = 111.11 2 How about choose some of Examples: try 5.625 B write in the same order 421 1/21/41/8 =0.5 =0.25=0.125

4 Dale Roberts Fractional Numbers (cont.) Exercise 1: Convert (0.625) 10 to its binary form Exercise 2: Convert (0.6) 10 to its binary form Solution: Solution: 0.625 x 2 = 1.25  extract 1 0.25 x 2 = 0.5  extract 0 0.5 x 2 = 1.0  extract 1 0.0  stop  (0.625) 10 = (0.101) 2 0.6 x 2 = 1.2  extract 1 0.2 x 2 = 0.4  extract 0 0.4 x 2 = 0.8  extract 0 0.8 x 2 = 1.6  extract 1 0.6 x 2 =   (0.6) 10 = (0.1001 1001 1001 …) 2

5 Dale Roberts Fractional Numbers (cont.) Exercise 3: Convert (0.8125) 10 to its binary form Solution: 0.8125 x 2 = 1.625  extract 1 0.625 x 2 = 1.25  extract 1 0.25 x 2 = 0.5  extract 0 0.5 x 2 = 1.0  extract 1 0.0  stop  (0.8125) 10 = (0.1101) 2

6 Dale Roberts Fractional Numbers (cont.) Errors One source of error in the computations is due to back and forth conversions between decimal and binary formats Example: (0.6) 10 + (0.6) 10 = 1.2 10 Since (0.6) 10 = (0.1001 1001 1001 …) 2 Lets assume a 8-bit representation: (0.6) 10 = (0.1001 1001) 2, therefore 0.60.10011001 + 0.6  +0.10011001 1.00110010 Lets reconvert to decimal system: (1.00110010) b = 1 x 2 0 + 0 x 2 -1 + 0 x 2 -2 + 1 x 2 -3 + 1 x 2 -4 + 0 x 2 -5 + 0 x 2 -6 + 1 x 2 -7 + 0 x 2 -8 = 1 + 1/8 + 1/16 + 1/128 = 1.1953125  Error = 1.2 – 1.1953125 = 0.0046875 = 0.0046875

7 Dale Roberts If x is a real number then its normal form representation is: x = f Base E where f : mantissa E: exponent exponent Example: 125.32 10 = 0.12532 10 3 mantissa - 125.32 10 = - 0.12532 10 3 0.0546 10 = 0.546 10 –1 The mantissa is normalized, so the digit after the fractional point is non-zero. Note that in binary, the leading digit is always 1, so it is normally hidden. If needed the mantissa should be shifted appropriately to make the first digit (after the fractional point) to be non-zero & the exponent is properly adjusted. Floating Point Number Representation

8 Dale Roberts Normalizing Numbers Example: 134.15 10 = 0.13415 x 10 3 0.0021 10 = 0.21 x 10 -2 101.11 B =.1011 x 2 3 or 1.011 x 2 2 (hidden1) 0.011 B =.11 x 2 -1 or 1.1 x 2 -2 (hidden1) AB.CD H =.ABCD x 16 2 0.00AC H =.AC x 16 -2 Note that the concept of a hidden 1 only applied to binary.

9 Dale Roberts Floating Point Number Representation Assume we use 16-bit binary pattern for normalized binary form based on the following convention (MSB to LSB) Sign of mantissa ( ± )= left most bit (where 0: +; 1: - ) Mantissa (f)= next 11 bits, leading 1 is assumed, m=1.f Exponent (E) = next 4 bits, bias 7 2 0 =7 (0111). 2 1 =8 (1000), 2 -1 =6 (0110) x = ± f Base E LSBMSB Excess-7 E : converted to binary, b 1 b 2 b 3 b 4 f = 1.? 1 ? 2 ? 3 ? 4 …? 11 ? 12 …? 15 + : 0 - : 1 ?1?1 ?2?2 ?3?3 ?4?4 ? 11 ? 10 ?9?9 ?8?8 ?7?7 ?5?5 ?6?6 b2b2 b3b3 b4b4 b1b1

10 Dale Roberts Question: How the computer expresses the 16-bit approximation of 1110.111010111111 in normalized binary form using the following convention Sign of mantissa = left most bit (where 0: +; 1: - ) Mantissa = next 11 bits, leading 1 is hidden, really represents 12 bits Exponent = next four bits, bias 7Answer: Step 1: Normalization 1110.111010111111 = + 1.110111010111111 * 2 +3 Step 2: “Plant” 16 bits the 16 bit floating point representation is 0 11011101011 1010 Floating Point Number Representation exponent 4 bits sign 1 bit mantissa 11 bits

11 Dale Roberts Floating Point Number Representation Question: Interpret the normalized binary number 0110 0000 0000 0100 B using the convention mentioned Sign of mantissa = left most bit (where 0: +; 1: - ) Mantissa = next 11 bits, leading 1 is hidden, really represents 12 bits Exponent = next four bits, bias 7 find its decimal equivalent. Answer: 0 11000000000 0100 B = 1.11 B *2 (4-7)=-3 = 0.00111 B = 7/32 = 0.21875 D

12 Dale Roberts Real Life Example: IEEE 754 IEEE Standard 754 is the representation of floating point used on most computers. Single precision (float) is 32 bits or 4 bytes with the following configuration. 1 sign bit 8 exponent 23 fraction The sign field for mantissa is 0 for positive or 1 for negative In the mantissa, the decimal point is assumed to follow the first ‘1’. Since the first digit is always a ‘1’, a hidden bit is used to representing the bit. The fraction is the 23 bits following the first ‘1’. The fraction really represents a 24 bit mantissa. The exponent field has a bias of 127, meaning that 127 is added to the exponent before it’s stored. 20 becomes 127, 21 becomes 128, 2-3 becomes 124, 2-1 becomes 126, etc. When the exponent becomes -127 (all zeroes), the hidden bit is not used to allow gradual underflow.

13 Dale Roberts Real Life Example: IEEE 754 IEEE 754 Examples: Normalized Numbers 0 1000 0011 0000 0000 0000 0000 0000 000 = 1 x 2 4 = 16 0 0011 0001 0000 0000 0000 0000 0000 000 = 1 x 2 -78 = 3.3087e-24 0 1000 0001 0100 0000 0000 0000 0000 000 = 1.25 x 2 2 = 5

14 Dale Roberts Real Life Example: IEEE 754 Double precision (double) is 64 bites or 8 bytes with the following configuration. 1 sign bit 11 exponent 52 fraction The definition of the fields matches single precision. The double precision bias is 1023. What value can you not represent because of the hidden bit? Certain bit patterns are reserved to represent special values. Of particular importance is the representation for zero (all bits zero). There are also patterns to represent infinity, positive and negative numeric overflow, positive and negative numeric underflow, and not-a-number (abbreviated NaN).

15 Dale Roberts IEEE 754 Converter The Java Applet IEEE 754 Converter is an interactive demonstration that let’s you enter a floating point number and see its IEEE 754 implementation. IEEE 754 ConverterIEEE 754 Converter

16 Dale Roberts The 32 Bit Single Precision Floating Point Format for IBM 370 Base = 16 Exponent = Excess-64 notation (i.e., compute binary equivalent, then subtract 64) Sign = sign of number (0: positive, 1: negative) Mantissa = normalized fraction (i.e. first digital after ‘.’ is non-zero) Example: What is the value of the following point number? 1 100 0010 1001 0011 1101 0111 1100 0010 Sign = 1  the number is negative Exponent (E) = 100 0010 2 = 66 10 = 2 (subtract 64, because of Excess-64 ) Mantissa (f ) = 1001 0011 1101 0111 1100 0010 = 93D7C2 H   The above floating point number is: x = (sign) f 16 E = - 0.93D7C2 16 2 x = - ( 9 x 16 -1 + 3 x 16 -2 + D x 16 -3 + 7 x 16 -4 + C x 16 -5 + 2 x 16 -6 ) 16 2 = - ( 9 x 16 1 + 3 x 16 0 + 13 x 16 -1 + 7 x 16 -2 + 12 x 16 -3 + 2 x 16 -4 ) = - (144+3 +0.8125+0.02734375 + 0.0029296875 + 0.000030517578125) = - 147.842803955078125 Appendix. IBM 370 mantissa 24 bits exponent 7 bits sign 1 bit

17 Dale Roberts Acknowledgements These slides where originally prepared by Dr. Jeffrey Huang, updated by Dale Roberts. IEEE 754 information was obtained from Steve Hollasch http://stevehollasch.com/cgindex/coding/ieeefloat.html. http://stevehollasch.com/cgindex/coding/ieeefloat.html IEEE 754 examples were obtained from Tony Cassandra at St. Edward’s University. IEEE 754 Converter. http://www.h-schmidt.net/FloatApplet/IEEE754.html.http://www.h-schmidt.net/FloatApplet/IEEE754.html


Download ppt "Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Information Representation: Floating Point Representation."

Similar presentations


Ads by Google