1 CSE1301 Computer Programming Lecture 30: Real Number Representation.

Slides:



Advertisements
Similar presentations
Spring 2013 Advising Starts this week! CS2710 Computer Organization1.
Advertisements

Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Topics covered: Floating point arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Floating Point Numbers
Faculty of Computer Science © 2006 CMPUT 229 Floating Point Representation Operating with Real Numbers.
1 IEEE Floating Point Revision Guide for Phase Test Week 5.
COMP3221: Microprocessors and Embedded Systems Lecture 14: Floating Point Numbers Lecturer: Hui Wu Session 2, 2004.
CS 447 – Computer Architecture Lecture 3 Computer Arithmetic (2)
Computer ArchitectureFall 2007 © September 5, 2007 Karem Sakallah CS 447 – Computer Architecture.
CSE1301 Computer Programming Lecture 33: Real Number Representation
Dr Damian Conway Room 132 Building 26
Chapter 5 Floating Point Numbers. Real Numbers l Floating point representation is used whenever the number to be represented is outside the range of integer.
CSE 378 Floating-point1 How to represent real numbers In decimal scientific notation –sign –fraction –base (i.e., 10) to some power Most of the time, usual.
1 Error Analysis Part 1 The Basics. 2 Key Concepts Analytical vs. numerical Methods Representation of floating-point numbers Concept of significant digits.
Floating Point Numbers
Computer ArchitectureFall 2008 © August 27, CS 447 – Computer Architecture Lecture 4 Computer Arithmetic (2)
Simple Data Type Representation and conversion of numbers
Binary Real Numbers. Introduction Computers must be able to represent real numbers (numbers w/ fractions) Two different ways:  Fixed-point  Floating-point.
Information Representation (Level ISA3) Floating point numbers.
Computer Organization and Architecture Computer Arithmetic Chapter 9.
Computer Arithmetic Nizamettin AYDIN
1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”
CEN 316 Computer Organization and Design Computer Arithmetic Floating Point Dr. Mansour AL Zuair.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 230 Information Representation: Negative and Floating Point.
Fixed-Point Arithmetics: Part II
Computing Systems Basic arithmetic for computers.
ECE232: Hardware Organization and Design
Floating Point. Agenda  History  Basic Terms  General representation of floating point  Constructing a simple floating point representation  Floating.
Data Representation in Computer Systems
S. Rawat I.I.T. Kanpur. Floating-point representation IEEE numbers are stored using a kind of scientific notation. ± mantissa * 2 exponent We can represent.
Computer Science Engineering B.E.(4 th sem) c omputer system organization Topic-Floating and decimal arithmetic S ubmitted to– Prof. Shweta Agrawal Submitted.
9.4 FLOATING-POINT REPRESENTATION
Round-off Errors and Computer Arithmetic. The arithmetic performed by a calculator or computer is different from the arithmetic in algebra and calculus.
1 Lecture 2  Complement  Floating Point Number  Character Encoding.
CSC 221 Computer Organization and Assembly Language
Floating Point Arithmetic
ITEC 1011 Introduction to Information Technologies 4. Floating Point Numbers Chapt. 5.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI N305 Information Representation: Floating Point Representation.
1 Number Systems Lecture 10 Digital Design and Computer Architecture Harris & Harris Morgan Kaufmann / Elsevier, 2007.
Lecture notes Reading: Section 3.4, 3.5, 3.6 Multiplication
1 Floating Point Operations - Part II. Multiplication Do unsigned multiplication on the mantissas including the hidden bits Do unsigned multiplication.
CSPP58001 Floating Point Numbers. CSPP58001 Floating vs. fixed point Floating point refers to a binary decimal representation where there is not a fixed.
Computer Architecture Lecture 22 Fasih ur Rehman.
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Floating Point Numbers Representation, Operations, and Accuracy CS223 Digital Design.
Binary Arithmetic.
Floating Point Numbers
COMPUTER SCIENCE Data Representation and Machine Concepts Section 1.7 Instructor: Lin Chen Sept 2013.
Representation of Data (Part II) Computer Studies Notes: chapter 19 Ma King Man.
Lecture 6: Floating Point Number Representation Information Representation: Floating Point Number Representation Lecture # 7.
Module 2.2 Errors 03/08/2011. Sources of errors Data errors Modeling Implementation errors Absolute and relative errors Round off errors Overflow and.
Cosc 2150: Computer Organization Chapter 9, Part 3 Floating point numbers.
Introduction to Numerical Analysis I
Floating Point Representations
Fundamentals of Computer Science
Introduction To Computer Science
Floating Point Number system corresponding to the decimal notation
IEEE floating point format
PRESENTED BY J.SARAVANAN. Introduction: Objective: To provide hardware support for floating point arithmetic. To understand how to represent floating.
CSCI206 - Computer Organization & Programming
(Part 3-Floating Point Arithmetic)
CSCI206 - Computer Organization & Programming
How to represent real numbers
How to represent real numbers
COMS 161 Introduction to Computing
Numbers with fractions Could be done in pure binary
Presentation transcript:

1 CSE1301 Computer Programming Lecture 30: Real Number Representation

2 Topics Terminology IEEE standard for floating-point representation Floating point arithmetic Limitations

3 Terminology All digits in a number following any leading zeros are significant digits:

4 Terminology (cont) The scientific notation for real numbers is: mantissa  base exponent In C, the expression: e-2 means:  10 -2

5 Terminology (cont) The mantissa is always normalized between 1 and the base (i.e., exactly one significant digit before the point) UnnormalizedNormalized   10 8 B1.39FC  B.139FC    2 -3

6 Terminology (cont) The precision of a number is how many digits (or bits) we use to represent it For example:

7 Representing Numbers A real number n is represented by a floating-point approximation n* The computer uses 32 bits (or more) to store each approximation It needs to store –the mantissa –the sign of the mantissa –the exponent (with its sign)

8 Representing Numbers (cont) The standard way to allocate 32 bits (specified by IEEE Standard 754) is: –23 bits for the mantissa –1 bit for the mantissa's sign –8 bits for the exponent

9 Representing Numbers (cont) –23 bits for the mantissa –1 bit for the mantissa's sign –8 bits for the exponent

10 Representing Numbers (cont) –23 bits for the mantissa –1 bit for the mantissa's sign –8 bits for the exponent

11 Representing Numbers (cont) –23 bits for the mantissa –1 bit for the mantissa's sign –8 bits for the exponent

12 The mantissa has to be in the range 1  mantissa < base Therefore –If we use base 2, the digit before the point must be a 1 –So we don't have to worry about storing it We get 24 bits of precision using 23 bits Representing the Mantissa

13 Representing the Mantissa (cont) 24 bits of precision are equivalent to a little over 7 decimal digits:

14 Representing the Mantissa (cont) Suppose we want to represent  : That means that we can only represent it as: (if we truncate) (if we round)

15 Representing the Exponent The exponent is represented as excess-127. E.g., Actual ExponentStored Value -127     i  ( i +127) 

16 Representing the Exponent (cont) The IEEE standard restricts exponents to the range: –126  exponent  +127 The exponents –127 and +128 have special meanings: –If exponent = – 127, the stored value is 0 –If exponent = 128, the stored value is 

17 Representing Numbers -- Example 1 What is (8-bit machine) ? sign exp mantissa Mantissa: Exponent (excess-3 format): 5-3=  2 2  = = = 6.75

18 Representing Numbers -- Example 2 Represent (32-bit machine) = = =   2 3 Sign: 1 Mantissa: Exponent (excess-127 format): = =

19 Floating Point Overflow Floating point representations can overflow, e.g.,    =   2 128

20 Floating Point Underflow Floating point numbers can also get too small, e.g.,  ÷   = 

21 Floating Point Addition Five steps to add two floating point numbers: 1.Express the numbers with the same exponent (denormalize) 2.Add the mantissas 3.Adjust the mantissa to one digit/bit before the point (renormalize) 4.Round or truncate to required precision 5.Check for overflow/underflow

22 Floating Point Addition -- Example 1 (Assume precision 4 decimal digits) x =  10 7 y =  10 6

23 Floating Point Addition -- Example 1 (cont) (Assume precision 4 decimal digits) 1. Use the same exponents: x =  10 7 y =  10 7

24 Floating Point Addition -- Example 1 (cont) (Assume precision 4 decimal digits) 2. Add the mantissas: x =  10 7 y =  10 7 x+y =  10 7

25 Floating Point Addition -- Example 1 (cont) (Assume precision 4 decimal digits) 3. Renormalize the sum: x =  10 7 y =  10 7 x+y =  10 8

26 Floating Point Addition -- Example 1 (cont) (Assume precision 4 decimal digits) 4. Truncate or round: x =  10 7 y =  10 7 x+y =  10 8

27 Floating Point Addition -- Example 1 (cont) (Assume precision 4 decimal digits) 5. Check overflow and underflow: x =  10 7 y =  10 7 x+y =  10 8

28 Floating Point Addition -- Example 2 (Assume precision 4 decimal digits) x =  y =  10 -5

29 Floating Point Addition -- Example 2 (cont) (Assume precision 4 decimal digits) 1. Use the same exponents: x =  y =  10 -5

30 Floating Point Addition -- Example 2 (cont) (Assume precision 4 decimal digits) 2. Add the mantissas: x =  y =  x+y =  10 -5

31 Floating Point Addition -- Example 2 (cont) (Assume precision 4 decimal digits) 3. Renormalize the sum: x =  y =  x+y =  10 -8

32 Floating Point Addition -- Example 2 (cont) (Assume precision 4 decimal digits) 4. Truncate or round: x =  y =  x+y =  (no change)

33 Floating Point Addition -- Example 2 (cont) (Assume precision 4 decimal digits) 5. Check overflow and underflow: x =  y =  x+y =  10 -8

34 Limitations Floating-point representations only approximate real numbers The normal laws of arithmetic don't always hold, e.g., associativity is not guaranteed

35 Limitations -- Example (Assume precision 4 decimal digits) x =  10 3 y =  10 3 z =  10 0

36 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 y =  10 3 z =  10 0 x+y =  10 0

37 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 x+y =  10 0 y =  10 3 z =  10 0 (x+y)+z =  10 0

38 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 y =  10 3 z =  10 0

39 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 y =  10 3 z =  10 0 y+z =  10 3

40 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 y =  10 3 y+z =  10 3 z =  10 0 x+(y+z) =  10 3

41 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 x+(y+z) =  10 0 y =  10 3 y+z =  10 3 z =  10 0

42 Limitations -- Example (cont) (Assume precision 4 decimal digits) x =  10 3 x+(y+z) =  10 0 y =  10 3 (x+y)+z =  10 0 z =  10 0

43 Limitations -- Exercise Laws of Arithmetic Consider the laws of arithmetic: –Commutativity (additive and multiplicative) –Associativity –Distributivity –Identity (additive and multiplicative) Try to work out which ones always hold for floating-point numbers

44 Reading (for the Very Keen) Goldberg, D., What Every Computer Scientist Should Know About Floating-Point Arithmetic, ACM Computing Surveys, Vol.23, No.1, March 1991 Knuth, D.E., The Art of Computer Programming (Vol 2) -- Seminumerical Algorithms, Section 4.4, pp (ed 3)