Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”

Similar presentations


Presentation on theme: "1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”"— Presentation transcript:

1 1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”

2 2 Lecture Template: Floating Point Numbers Floating Point Numbers Exponential Notation Exponential Notation Excess-50 Notation Excess-50 Notation Overflow and Underflow Overflow and Underflow Floating Point Calculations Floating Point Calculations Normalization in Floating Point Normalization in Floating Point IEEE 754 Standard IEEE 754 Standard Packed Decimal Format Packed Decimal Format Programming Considerations Programming Considerations

3 3 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: r or more

4 4 Exponential Notation The representations differ in that the decimal place – the “point” -- “floats” to the left or right (with the appropriate adjustment in the exponent). The following are equivalent representations of 1,234 123,400.0 x 10 -2 12,340.0 x 10 -1 1,234.0 x 10 0 123.4 x 10 1 12.34 x 10 2 1.234 x 10 3 0.1234 x 10 4

5 5 Exponential Notation Also called scientific notation 4 specifications required for a number 1. Sign (“+” in example) 2. Magnitude or mantissa (12345) 3. Sign of the exponent (“+” in 10 5 ) 4. Magnitude of the exponent (5) Plus 5. Base of the exponent (10) 6. Location of decimal point (or other base) radix point 12345 12345 x 10 0 0.12345 x 10 5 123450000 x 10 -4

6 6 Parts of a Floating Point Number -0.9876 x 10 -3 Sign of mantissa Location of decimal point Mantissa Exponent Sign of exponent Base

7 7 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 Exponent5-digit Mantissa

8 8 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 Representation0495099 Exponent being represented -50 049 – Increasing magnitude+

9 9 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

10 10 Overflow and Underflow Possible for the number to be too large or too small for representation 0.00001 x 10 -50 = 10 -55

11 11 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

12 12 Examples 05324567=0.24567 x 10 3 =246.57 54810000=– 0.10000 X 10 -2 =– 0.0010000 5555555=– 0.55555 x 10 5 =– 55555 04925000=0.25000 x 10 -1 =0.025000

13 13 Normalization Shift numbers left by increasing the exponent until leading zeros eliminated Converting decimal number into standard format 1. 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

14 14 Example 1: 246.8035 1. Add exponent246.8035 x 10 0 2. Position decimal point.2468035 x 10 3 3. Already normalized 4. Cut to 5 digits.24680 x 10 3 5. Convert number05324680 Excess-50 exponent Mantissa Sign

15 15 Example 2: 1255 x 10 -3 1. Already in exponential form 1255x 10 -3 2. Position decimal point0.1255 x 10 +1 3. Already normalized 4. Add 0 for 5 digits0.12550 x 10 +1 5. Convert number05112550

16 16 Example 3: - 0.00000075 1. Exponential notation- 0.00000075 x 10 0 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 number54475000

17 17 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

18 18 Example Add 2 floating point numbers05199520 +04967850 Align exponents05199520 0510067850 Add mantissas; (1) indicates a carry (1)0019850 Carry requires right shift05210019(850) Round05210020 Check results 05199520 = 0.99520 x 10 1 = 9.9520 04967850 = 0.67850 x 10 -1 = 0.06785 = 10.01985 In exponential form= 0.1001985 x 10 2 Precision lost

19 19 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

20 20 Example Multiply 2 numbers 05220000 x04712500 Add exponents, subtract offset52 + 47 – 50 = 49 Multiply mantissas0.20000 x 0.12500 = 0.025000000 Normalize the results04825000 Check results 05220000 =0.20000 x 10 2 04712500 =0.125 x 10 -3 =0.0250000000 x 10 -1 Normalizing and rounding=0.25000 x 10 -2

21 21 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

22 22 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)

23 23 Single Precision Format 32 bits Mantissa (23 bits) Exponent (8 bits) Sign of mantissa (1 bit)

24 24 Double Precision Format 64 bits Mantissa (52 bits) Exponent (11 bits) Sign of mantissa (1 bit)

25 25 IEEE 754 Standard PrecisionSingle (32 bit) Double (64 bit) Sign1 bit Exponent8 bits11 bits NotationExcess-127Excess-1023 Implied base22 Range2 -126 to 2 127 2 -1022 to 2 1023 Mantissa2352 Decimal digits  7 15 Value range  10 -45 to 10 38  10 -300 to 10 300

26 26 IEEE 754 Standard 32-bit Floating Point Value Definition ExponentMantissaValue 0 ±0 0 0Not 0 ±2 -126 x 0.M 1-254Any ±2 -127 x 1.M 255 ±0±± 255not 0special condition

27 27 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: Exponent Formatted using Excess-127 notation Base 2 is implied Range: 2 -126 to 2 127 10100000000000000000000 1.101 2 = 1.625 10

28 28 Excess Notation: Example Represent exponent of 14 10 in excess-127 form: 127 10 = + 01111111 2 14 10 = + 00001110 2 Representation= 10001101 2 141 10

29 29 Excess Notation: Example Represent exponent of -8 10 in excess 127 form: 127 10 = + 01111111 2 - 8 10 = - 00001000 2 Representation= 01110111 2 119 10

30 30 Single Precision: Example 0 10000010 11000000000000000000000 1.11 2 = 1.75 10 130 – 127 = 3 0 = positive mantissa +1.75  2 3 = 14.0 or +1.11 2  2 3 = +1110.0 =14

31 31 Single Precision: Exercise What decimal value is represented by the following 32-bit floating point number? Answer: 1 10000010 11110110000000000000000 Skip answer Answer

32 32 Single Precision: Exercise Answer What decimal value is represented by the following 32-bit floating point number? Answer: -15.6875 1 10000010 11110110000000000000000

33 33 Step by Step Solution 1 10000010 11110110000000000000000 To decimal form 130 - 127 = 31.11110110000000000000000000 1 +.5 +.25 +.125 +.0625 + 0 +.015625 +.0078125 1.9609375 2323 * = 15.6875 - 15.6875 ( negative )

34 34 Step by Step Solution : Alternative Method 1 10000010 11110110000000000000000 To decimal form 130 - 127 = 31.11110110000000000000000000 1111.10110000000000000000000 - 15.6875 ( negative ) Shift “Point”

35 35 IBM floating point formats

36 36 Alpha floating point formats

37 37 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

38 38 Exercise: Floating Point Conversion Answer Express 3.14 as a 32-bit floating point number Answer: (Note: only use 10 significant bits for the mantissa) 0 10000000 10010001111000000000000

39 39 Detail Solution : 3.14 to IEEE double precision 3.14 To Binary (approx): 11.001000111101 Delete implied left-most “1” and normalize 1001000111101 Exponent = 127 + 1 position point moved when normalized 10000000 Value is positive: Sign bit = 0 0 10000000 10010001111010000000000 Prove !

40 40 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

41 41 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

42 42 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

43 43 Packed Decimal Format: Example 2 Decimal Value:- 9 0 4 1 3 Packed Decimal:1001 0000 0100 0001 0011 1101 Byte 1 Byte 2 Byte 3

44 44 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)

45 45 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

46 46 Computer humour


Download ppt "1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”"

Similar presentations


Ads by Google