Computer arithmetics: integers, binary floatingpoint, and decimal floatingpoint


 Calvin Thornton
 11 months ago
 Views:
Transcription
1 n!= 0 && n == n z+1 == z Computer arithmetics: integers, binary floatingpoint, and decimal floatingpoint v+ww!= v x+1 < x Peter Sestoft y!= y p == n && 1/p!= 1/n 1 Computer arithmetics Computer numbers are cleverly designed, but Very different from highschool mathematics There are some surprises Choose representation with care: When to use int, short, long, byte, When to use double or float When to use decimal floatingpoint 2 1
2 Integers Taxonomy Unsigned, binary representation Signed Signedmagnitude Two s complement (Java and C# int, short, byte, ) Arithmetic modulo 2 n Floatingpoint numbers IEEE 754 binary32 and binary64 Which you know as float and double in Java and C# IEEE 754 decimal128 and also C# s decimal type and also Java s java.math.bigdecimal 3 Positive integers, binary representation Decimal notation = 8* * *10 0 = 805 Every place is worth 10 times that to the right Binary notation = 1* * * *2 0 = 13 Every place is worth 2 times the right one Positional number systems: Base is 10 or 2 or 16 or Any nonpositional number systems?
3 Binary numbers A bit is a binary digit: 0 or 1 Easy to represent in electronics (But some base10 hardware in the 1960es) Counting with three bits: 000, 001, 010, 011, 100, 101, 110, 111 Computing: = = 101 There are 10 kinds of people: those who understand binary and those who don t 5 Hexadecimal numbers Hexidecimal numbers have base 16 Digits: A B C D E F = 3 * * *16 0 = 805 Each place is worth 16 times that... Useful alternative to binary Because 16 = 2 4 So one hex digit = 4 bits Computing in hex: A + B = 15 AA + 1 = AB AA + 10 = BA A 1010 B 1011 C 1100 D 1101 E 1110 F
4 Negative integers Signed magnitude: A sign bit and a number Problem: Then we have both +0 and 0 Two s complement: Negate all bits and add 1 Only one zero Easy to compute with Requires known size of number, e.g. 8, 16, 32, 64 bits Examples of two s complement (4 bits) 3 is represented by 1101 because 3 = so complement is 1100; add 1 to get 3 = is represented by 1111 because 1 = so complement is 1110; add 1 to get 1 = is represented by 1000 because 8 = so complement is 0111; add 1 to get 8 = Clicker: Two's complement What decimal number does the 8bit two's complement number represent? A) 137 = B) 118 = ( ) C) 119 = D) 119 = ( ) 8 4
5 Integer arithmetics modulo 2 n Java and C# int is 32bit two scomplement Max int is = Min int is (2 31 ) = If x = then x+1 = < x If n = then n = n = = = = = = = = = An obviously nonterminating loop? int i = 1; while (i > 0) i++; System.out.println(i); Does terminate! Values of i:
6 Binary fractions Before the point:, 16, 8, 4, 2, 1 After the point: 1/2, 1/4, 1/8, 1/16, 0.5 = = = = = = = But how many digits are needed before the point? how many digits are needed after the point? Answer: Binary floatingpoint (double, float) The point is placed dynamically 11 Clicker: Binary fractions If the binary fraction represents , what does represent? A) = * 2 B) = / 2 C) = * 10 D) = /
7 Clicker: Binary fractions What is represented as a binary fraction? A) B) C) D) Some nasty fractions Some numbers not representable as finite decimal fractions: 1/7 = Same problem with binary fractions: 1/10 = Quite unfortunate: Cannot represent 0.10 krone or $0.10 exactly Nor 0.01 krone or $0.01 exactly Do not use binary floatingpoint (float, double) for accounting! 14 7
8 An obviously terminating loop? double d = 0.0; while (d!= 1.0) d += 0.1; d never equals 1.0 Does not terminate! Values of d: History of floatingpoint numbers Until 1985: Many different designs, anarchy Difficult to write portable numerical software Standard IEEE binary fp Implemented by all modern hardware Assumed by modern programming languages Designed primarily by William Kahan for Intel Revised standard IEEE binary floatingpoint as in IEEE decimal floatingpoint (new) IEEE = EyetripleE = Institute of Electrical and Electronics Engineers (USA) 16 8
9 IEEE floating point representation Signedmagnitude Sign, exponent, significand: s * 2 e * c Representation: Sign s, exponent e, fraction f (= significand minus 1) s eeeeeeee fffffffffffffffffffffff = 1.0 float Java, C# float, binary32 double, binary64 bits e bits f bits range e bias sign. digits ±1044 to ± ± to ± Intel ext ± to ± Understanding the representation Normalized numbers Choose exponent e so the significand is 1.ffffff Hence we need only store the.ffffff not 1 (!) Exponent is unsigned but a bias is added For 32bit float the bias is 127 s eeeeeeee fffffffffffffffffffffff = = = = = = =
10 A detailed example Consider x = We know that = Normalize to 2 6 * So exponent e = 6, represented by = 133 significand is so fraction f = sign is 1 for negative s eeeeeeee fffffffffffffffffffffff = Clickers: floating points If is represented as the binary fraction , what is the 32bit floating point representation of ? s!eeeeeeeee! fffffffffffffffffffffff! A!0! = 4! ! B!1! = 131! ! C!0! = 5! ! D!1! = 130! ! E!1! = 2! ! 20 10
11 Special numbers Denormal numbers, resulting from underflow Infinite numbers, resulting from 1/0, Math.log(0), NaNs (notanumber), resulting from 0/0, Math.sqrt(1), Exponent e Represented number Normal: ±1038 to ± Denormal (underflow): ±1044 to ±1038 and Infinities, when f= NaNs, when f=1b b s eeeeeeee fffffffffffffffffffffff = = 7.346E = Infinity = Infinity s = NaN 21 Why denormal numbers? To allow gradual underflow, small numbers To ensure that x y==0 if and only if x==y Example: Smallest nonzero normal number is So choose x= *2126 and y= *2126 : s eeeeeeee fffffffffffffffffffffff = x = y = xy What would happen without denormal? Since xy is it is less than So result of xy would be represented as 0.0 But clearly x!=y, so this would be confusing 22 11
12 Why infinities? 1: A simple solution to overflow Math.exp(100000) gives +Infinity 2: To make sensible expressions work Example: Compute f(x) = x/(x 2 +1) But if x is large then x 2 may overflow Better compute: f(x) = 1/(x+1/x) But if x=0 then 1/x looks bad, yet we want f(x)=0 Solution: Let 1/0 be Infinity Let 0+Infinity be Infinity Let 1/Infinity be 0 Then 1/(0+1/0) gives 0 as desired for x=0 23 Why NaNs? A simple and efficient way to report error Languages like C do not have exceptions Exceptions are 10,000 times slower than (1.2+x) Even weird expressions must have a result 0/0 gives NaN Infinity Infinity gives NaN Math.sqrt(1) gives NaN Math.log(1) gives NaN Operations must preserve NaNs NaN + 17 gives NaN Math.sqrt(NaN) gives NaN and so on 24 12
13 What about double (binary64)? The same, just with 64= bits instead of 32 s eeeeeeeeeee ffffffffffffffffffffffffffffffffffffffffffffffffffff = = = = = = Infinity = Infinity s = NaN = 1.39E = Infinity = = , clearly not equal to IEEE addition 26 13
14 IEEE subtraction 27 IEEE multiplication 28 14
15 IEEE division 29 IEEE equality and ordering Equality (==,!=) A NaN is not equal to anything, not even itself So if y is NaN, then y!= y Ordering: < 2.0 < 0.0 == 0.0 < 2.0 < + All ordering comparisons involving NaNs give false 30 15
16 Java and C# mathematical functions In general, functions behave sensibly Give +Infinity or Infinity on extreme arguments Give NaN on invalid arguments Preserve NaN arguments sqrt(2.0) = NaN log(0.0) = Inf log(1.0) = NaN sin(inf) = NaN asin(2.0) = NaN exp( ) = Inf exp(inf) = 0.0 pow(0, 1) = Inf sqrt(nan) = NaN log(nan) = NaN sin(nan) = NaN exp(nan) = NaN pow(nan, 0) = 1 in Java 31 Rounding modes Highschool: round 0.5 upwards Rounds 0,1,2,3,4 down and rounds 5,6,7,8,9 up Looks fair But it s dangerous: may introduce drift IEEE rounds 0.5 to nearest even number So both 1.5 and 2.5 round to
17 Basic principle of IEEE floatingpoint Each of the computational operations shall be performed as if it first produced an intermediate result correct to infinite precision and unbounded range, and then rounded that intermediate result to fit in the destination s format (IEEE ) So the machine result of x*y is the rounding of the real result of x*y This is simple and easy to reason about and quite surprising that it can be implemented in finite hardware 33 Clickers: IEEE surprises For which values of x is x = 1.0 with 32bit floating point arithmetic? A) 1.0x106 B) 1.0x10 8 C) 1.0x108 D) 1.0x10 6 Hint: 23/log 2 (10) 6.92 significant digits 34 17
18 Loss of precision 1 (ex: double) Let double z=2 53, then z+1==z because only 52 digits in fraction =z =z+1 35 Loss of precision 2 (ex: double) Catastrophic cancellation Let v= and w= Big and nearly equal; correct to 16 decimal places But their difference v w is correct only to 6 places Because fractions were correct only to 6 places v = w = vw = Garbage digits = v = w = vw Would be nonzero in fullprecision
19 Case: Solving a quadratic equation The solutions to ax 2 + bx + c = 0 are when d = b 2 4ac > 0. But subtraction b± d may lose precision when b 2 is much larger than 4ac; in this case the square root is nearly b. Since d >= 0, compute x 1 first if b<0, else compute x 2 first Then compute x 2 from x 1 (or x 1 from x 2 ) 37 Bad and good quadratic solutions double d = b * b  4 * a * c; if (d > 0) { double y = Math.sqrt(d); double x1 = (b  y)/(2 * a); double x2 = (b + y)/(2 * a); } Bad double d = b * b  4 * a * c; Good if (d > 0) { double y = Math.sqrt(d); double x1 = b > 0? (b  y)/(2*a) : (b + y)/(2*a); double x2 = c / (x1 * a); } else... When a=1, b=10 9, c=1 we get Bad algorithm: x1 = e+09 and x2 = Good algorithm: x1 = e+09 and x2 = e
20 Case: Linear regression Points (2.1, 5.2), (2.2, 5.4), (2.4, 5.8) have regression line y = α + β x with α = 1 and β = 2 39 Bad way to compute α and β double SX = 0.0, SY = 0.0, SSX = 0.0, SXY = 0.0; for (int i=0; i<n; i++) { Point p = ps[i]; Large and SX += p.x; nearly SY += p.y; identical SXY += p.x * p.y; SSX += p.x * p.x; } double beta = (SXY  SX*SY/n) / (SSX  SX*SX/n); double alpha = SY/n  SX/n * beta; This recipe was used for computing by hand OK for points near (0,0) But otherwise may lose precision because it subtracts large numbers SSX and SX*SX/n 40 20
21 Better way to compute α and β double SX = 0.0, SY = 0.0; for (int i=0; i<n; i++) { Point p = ps[i]; SX += p.x; SY += p.y; } double EX = SX/n, EY = SY/n; double SDXDY = 0.0, SSDX = 0.0; for (int i=0; i<n; i++) { Point p = ps[i]; double dx = p.x  EX, dy = p.y  EY; SDXDY += dx * dy; SSDX += dx * dx; } double beta = SDXDY/SSDX; double alpha = SY/n  SX/n * beta; Mathematically equivalent, but much more precise than previous one on the computer 41 Example results Consider (2.1, 5.2), (2.2, 5.4), (2.4, 5.8) And same with or added to each coordinate Move Bad Good Correct Wrong 0 10 Very M wrong!! 50 M α β α β α β
22 An accurate computation of sums Let double[] xs = { 1E12, 1, 1E12, 1, } The true array sum is 9,999,999,999,990,000.0 double S = 0.0; for (int i=0; i<xs.length; i++) S += xs[i]; double S = 0.0, C = 0.0; for (int i=0; i<xs.length; i++) { double Y = xs[i]  C, T = S + Y; } C = (T  S)  Y; S = T; 20,000 elements Naïve sum, error = 992 Kahan sum, error = 0 C is the error in the sum S Note that C = (TS)Y = ((S+Y)S)Y may be nonzero 43 C# decimal, and IEEE decimal128 C# s decimal type is decimal floatingpoint Has 28 significant digits Has range ±1028 to ±10 28 Can represent 0.01 exactly Uses 128 bits; computations are a little slower Use decimal IEEE 754 decimal128 is even better for accounting (dollars, euro, kroner)! Has 34 significant (decimal) digits Has range ± to ± Can represent 0.01 exactly Uses 128 bits in a very clever way (Mike Cowlishaw, IBM) Java s java.math.bigdecimal Has unlimited number of significant digits Has range ± to ± Computations are a lot slower 44 22
23 Floatingpoint tips and tricks Do not compare floatingpoint using ==,!= Use Math.abs(x y) < 1E9 or similar Or use Math.abs(Double.doubleToLongBits(x) Double.doubleToLongBits(y))<16 Do not use floatingpoint for currency ($, kr) Use C# decimal or java.math.bigdecimal Or use long, and store amount as cents or øre A double stores integers <= *10 15 exactly To compute with very small positive numbers (probabilities) or very large positive numbers (combinations), use their logarithms 45 Proposed exercises Find types and values such that It holds that x+1 < x It holds that z+1 == z It holds that y!= y It holds that v+ww!= v It holds that x==y && 1.0/x!= 1.0/y And check that Java arithmetics works like that Find the binary representation of +3 and 3 as byte, int and long of +128 and 127 as byte, int and long of and and 62.5 and 625 as float of 0.01 as double and check results using displayint etc from Numbers.java Compute 1/Infinity and Math.exp(Infinity) and 1/ (1+1/0) and Math.pow(0, 1) in Java 46 23
24 References David Goldberg: What every computer scientist should know about floatingpoint arithmetics, 1991 R. Mak: Java Number Cruncher: The Java Programmer's Guide to Numerical Computing. PrenticeHall Java example code and more: William Kahan notes on IEEE 754: General Decimal Arithmetic (Mike Cowlishaw, IBM) C# specification (Ecma International standard 334): How to compare floatingpoint numbers (in C):
Computer arithmetics: integers, binary floatingpoint, and decimal floatingpoint
z+1 == z Computer arithmetics: integers, binary floatingpoint, and decimal floatingpoint Peter Sestoft 20130218** x+1 < x p == n && 1/p!= 1/n 1 Computer arithmetics Computer numbers are cleverly designed,
More informationFloating Point Numbers
Floating Point Numbers Summer 8 Fractional numbers Fractional numbers fixed point Floating point numbers the IEEE 7 floating point standard Floating point operations Rounding modes CMPE Summer 8 Slides
More informationFloatingpoint numbers. Phys 420/580 Lecture 6
Floatingpoint numbers Phys 420/580 Lecture 6 Random walk CA Activate a single cell at site i = 0 For all subsequent times steps, let the active site wander to i := i ± 1 with equal probability Random
More informationSystems I. Floating Point. Topics IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties
Systems I Floating Point Topics IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties IEEE Floating Point IEEE Standard 754 Established in 1985 as uniform standard for
More informationChapter 2 Float Point Arithmetic. Real Numbers in Decimal Notation. Real Numbers in Decimal Notation
Chapter 2 Float Point Arithmetic Topics IEEE Floating Point Standard Fractional Binary Numbers Rounding Floating Point Operations Mathematical properties Real Numbers in Decimal Notation Representation
More informationSystem Programming CISC 360. Floating Point September 16, 2008
System Programming CISC 360 Floating Point September 16, 2008 Topics IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties Powerpoint Lecture Notes for Computer Systems:
More informationFloatingPoint Numbers in Digital Computers
POLYTECHNIC UNIVERSITY Department of Computer and Information Science FloatingPoint Numbers in Digital Computers K. Ming Leung Abstract: We explain how floatingpoint numbers are represented and stored
More informationFloatingPoint Numbers in Digital Computers
POLYTECHNIC UNIVERSITY Department of Computer and Information Science FloatingPoint Numbers in Digital Computers K. Ming Leung Abstract: We explain how floatingpoint numbers are represented and stored
More informationFloating point. Today! IEEE Floating Point Standard! Rounding! Floating Point Operations! Mathematical properties. Next time. !
Floating point Today! IEEE Floating Point Standard! Rounding! Floating Point Operations! Mathematical properties Next time! The machine model Chris Riesbeck, Fall 2011 Checkpoint IEEE Floating point Floating
More informationFloating Point Puzzles The course that gives CMU its Zip! Floating Point Jan 22, IEEE Floating Point. Fractional Binary Numbers.
class04.ppt 15213 The course that gives CMU its Zip! Topics Floating Point Jan 22, 2004 IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties Floating Point Puzzles For
More informationRepresenting and Manipulating Floating Points
Representing and Manipulating Floating Points JinSoo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu The Problem How to represent fractional values with
More informationGiving credit where credit is due
CSCE 230J Computer Organization Floating Point Dr. Steve Goddard goddard@cse.unl.edu http://cse.unl.edu/~goddard/courses/csce230j Giving credit where credit is due Most of slides for this lecture are based
More informationInf2C  Computer Systems Lecture 2 Data Representation
Inf2C  Computer Systems Lecture 2 Data Representation Boris Grot School of Informatics University of Edinburgh Last lecture Moore s law Types of computer systems Computer components Computer system stack
More informationDescription Hex M E V smallest value > largest denormalized negative infinity number with hex representation 3BB0 
CSE2421 HOMEWORK #2 DUE DATE: MONDAY 11/5 11:59pm PROBLEM 2.84 Given a floatingpoint format with a kbit exponent and an nbit fraction, write formulas for the exponent E, significand M, the fraction
More information15213 Recitation 2: Floating Point
15213 Recitation 2: Floating Point 1 Introduction This handout will introduce and test your knowledge of the floating point representation of real numbers, as defined by the IEEE standard. This information
More informationData Representation Floating Point
Data Representation Floating Point CSCI 2400 / ECE 3217: Computer Architecture Instructor: David Ferry Slides adapted from Bryant & O Hallaron s slides via Jason Fritts Today: Floating Point Background:
More informationNumeric Encodings Prof. James L. Frankel Harvard University
Numeric Encodings Prof. James L. Frankel Harvard University Version of 10:19 PM 12Sep2017 Copyright 2017, 2016 James L. Frankel. All rights reserved. Representation of Positive & Negative Integral and
More informationFloating Point. The World is Not Just Integers. Programming languages support numbers with fraction
1 Floating Point The World is Not Just Integers Programming languages support numbers with fraction Called floatingpoint numbers Examples: 3.14159265 (π) 2.71828 (e) 0.000000001 or 1.0 10 9 (seconds in
More informationFloating point. Today. IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties Next time.
Floating point Today IEEE Floating Point Standard Rounding Floating Point Operations Mathematical properties Next time The machine model Fabián E. Bustamante, Spring 2010 IEEE Floating point Floating point
More informationFloatingPoint Data Representation and Manipulation 198:231 Introduction to Computer Organization Lecture 3
FloatingPoint Data Representation and Manipulation 198:231 Introduction to Computer Organization Instructor: Nicole Hynes nicole.hynes@rutgers.edu 1 Fixed Point Numbers Fixed point number: integer part
More informationFloating Point Numbers. Lecture 9 CAP
Floating Point Numbers Lecture 9 CAP 3103 06162014 Review of Numbers Computers are made to deal with numbers What can we represent in N bits? 2 N things, and no more! They could be Unsigned integers:
More information2 Computation with FloatingPoint Numbers
2 Computation with FloatingPoint Numbers 2.1 FloatingPoint Representation The notion of real numbers in mathematics is convenient for hand computations and formula manipulations. However, real numbers
More informationTable : IEEE Single Format ± a a 2 a 3 :::a 8 b b 2 b 3 :::b 23 If exponent bitstring a :::a 8 is Then numerical value represented is ( ) 2 = (
Floating Point Numbers in Java by Michael L. Overton Virtually all modern computers follow the IEEE 2 floating point standard in their representation of floating point numbers. The Java programming language
More informationComputational Mathematics: Models, Methods and Analysis. Zhilin Li
Computational Mathematics: Models, Methods and Analysis Zhilin Li Chapter 1 Introduction Why is this course important (motivations)? What is the role of this class in the problem solving process using
More informationFloating Point Arithmetic
Floating Point Arithmetic CS 365 FloatingPoint What can be represented in N bits? Unsigned 0 to 2 N 2s Complement 2 N1 to 2 N11 But, what about? very large numbers? 9,349,398,989,787,762,244,859,087,678
More informationWhat Every Programmer Should Know About FloatingPoint Arithmetic
What Every Programmer Should Know About FloatingPoint Arithmetic Last updated: October 15, 2015 Contents 1 Why don t my numbers add up? 3 2 Basic Answers 3 2.1 Why don t my numbers, like 0.1 + 0.2 add
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: September 18, 2017 at 12:48 CS429 Slideset 4: 1 Topics of this Slideset
More informationGPU Floating Point Features
CSE 591: GPU Programming Floating Point Considerations Klaus Mueller Computer Science Department Stony Brook University Objective To understand the fundamentals of floatingpoint representation To know
More informationecture 25 Floating Point Friedland and Weaver Computer Science 61C Spring 2017 March 17th, 2017
ecture 25 Computer Science 61C Spring 2017 March 17th, 2017 Floating Point 1 NewSchool Machine Structures (It s a bit more complicated!) Software Hardware Parallel Requests Assigned to computer e.g.,
More informationFloatingpoint Arithmetic. where you sum up the integer to the left of the decimal point and the fraction to the right.
Floatingpoint Arithmetic Reading: pp. 312328 FloatingPoint Representation Nonscientific floating point numbers: A noninteger can be represented as: 2 4 2 3 2 2 2 1 2 0.21 22 23 24 where you sum
More informationFloatingPoint Arithmetic
FloatingPoint Arithmetic ECS30 Winter 207 January 27, 207 Floating point numbers Floatingpoint representation of numbers (scientific notation) has four components, for example, 3.46 0 sign significand
More informationMost nonzero floatingpoint numbers are normalized. This means they can be expressed as. x = ±(1 + f) 2 e. 0 f < 1
FloatingPoint Arithmetic Numerical Analysis uses floatingpoint arithmetic, but it is just one tool in numerical computation. There is an impression that floating point arithmetic is unpredictable and
More informationFloating Point Representation in Computers
Floating Point Representation in Computers Floating Point Numbers  What are they? Floating Point Representation Floating Point Operations Where Things can go wrong What are Floating Point Numbers? Any
More information1.2 Roundoff Errors and Computer Arithmetic
1.2 Roundoff Errors and Computer Arithmetic 1 In a computer model, a memory storage unit word is used to store a number. A word has only a finite number of bits. These facts imply: 1. Only a small set
More informationIntegers and Floating Point
CMPE12 More about Numbers Integers and Floating Point (Rest of Textbook Chapter 2 plus more)" Review: Unsigned Integer A string of 0s and 1s that represent a positive integer." String is X n1, X n2,
More informationFloatingpoint representation
Lecture 34: Floatingpoint representation and arithmetic Floatingpoint representation The notion of real numbers in mathematics is convenient for hand computations and formula manipulations. However,
More informationCS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.
CS 265 Computer Architecture Wei Lu, Ph.D., P.Eng. 1 Part 1: Data Representation Our goal: revisit and reestablish fundamental of mathematics for the computer architecture course Overview: what are bits
More informationNumber Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as:
N Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as: a n a a a The value of this number is given by: = a n Ka a a a a a
More information3.5 Floating Point: Overview
3.5 Floating Point: Overview Floating point (FP) numbers Scientific notation Decimal scientific notation Binary scientific notation IEEE 754 FP Standard Floating point representation inside a computer
More informationEE 109 Unit 19. IEEE 754 Floating Point Representation Floating Point Arithmetic
1 EE 109 Unit 19 IEEE 754 Floating Point Representation Floating Point Arithmetic 2 Floating Point Used to represent very small numbers (fractions) and very large numbers Avogadro s Number: +6.0247 * 10
More informationFloating Point Arithmetic
Floating Point Arithmetic Clark N. Taylor Department of Electrical and Computer Engineering Brigham Young University clark.taylor@byu.edu 1 Introduction Numerical operations are something at which digital
More informationNumber Systems. Both numbers are positive
Number Systems Range of Numbers and Overflow When arithmetic operation such as Addition, Subtraction, Multiplication and Division are performed on numbers the results generated may exceed the range of
More informationIT 1204 Section 2.0. Data Representation and Arithmetic. 2009, University of Colombo School of Computing 1
IT 1204 Section 2.0 Data Representation and Arithmetic 2009, University of Colombo School of Computing 1 What is Analog and Digital The interpretation of an analog signal would correspond to a signal whose
More informationIEEE Standard 754 Floating Point Numbers
IEEE Standard 754 Floating Point Numbers Steve Hollasch / Last update 2005Feb24 IEEE Standard 754 floating point is the most common representation today for real numbers on computers, including Intelbased
More informationComputer Systems C S Cynthia Lee
Computer Systems C S 1 0 7 Cynthia Lee 2 Today s Topics LECTURE: Floating point! Real Numbers and Approximation MATH TIME! Some preliminary observations on approximation We know that some noninteger numbers
More informationFloating Point Representation. CS Summer 2008 Jonathan Kaldor
Floating Point Representation CS3220  Summer 2008 Jonathan Kaldor Floating Point Numbers Infinite supply of real numbers Requires infinite space to represent certain numbers We need to be able to represent
More informationFloating Point Considerations
Chapter 6 Floating Point Considerations In the early days of computing, floating point arithmetic capability was found only in mainframes and supercomputers. Although many microprocessors designed in the
More informationLogic, Words, and Integers
Computer Science 52 Logic, Words, and Integers 1 Words and Data The basic unit of information in a computer is the bit; it is simply a quantity that takes one of two values, 0 or 1. A sequence of k bits
More informationFloating Point Numbers
Floating Point Floating Point Numbers Mathematical background: tional binary numbers Representation on computers: IEEE floating point standard Rounding, addition, multiplication Kai Shen 1 2 Fractional
More informationCS61c Midterm Review (fa06) Number representation and Floating points From your friendly reader
CS61c Midterm Review (fa06) Number representation and Floating points From your friendly reader Number representation (See: Lecture 2, Lab 1, HW#1) KNOW: Kibi (2 10 ), Mebi(2 20 ), Gibi(2 30 ), Tebi(2
More informationData Representation Type of Data Representation Integers Bits Unsigned 2 s Comp Excess 7 Excess 8
Data Representation At its most basic level, all digital information must reduce to 0s and 1s, which can be discussed as binary, octal, or hex data. There s no practical limit on how it can be interpreted
More informationCS101 Introduction to computing Floating Point Numbers
CS101 Introduction to computing Floating Point Numbers A. Sahu and S. V.Rao Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati 1 Outline Need to floating point number Number representation
More informationDigital Arithmetic. Digital Arithmetic: Operations and Circuits Dr. Farahmand
Digital Arithmetic Digital Arithmetic: Operations and Circuits Dr. Farahmand Binary Arithmetic Digital circuits are frequently used for arithmetic operations Fundamental arithmetic operations on binary
More informationmith College Computer Science Fixed & Floating Point Formats CSC231 Fall 2017 Week #15 Dominique Thiébaut
mith College Computer Science Fixed & Floating Point CSC231 Fall 2017 Week #15 Formats Dominique Thiébaut dthiebaut@smith.edu Trick Question for ( double d = 0; d!= 0.3; d += 0.1 ) System.out.println(
More informationRoundoff Errors and Computer Arithmetic
Jim Lambers Math 105A Summer Session I 200304 Lecture 2 Notes These notes correspond to Section 1.2 in the text. Roundoff Errors and Computer Arithmetic In computing the solution to any mathematical problem,
More informationRollover. from xkcd.com
Computer Arithmetic Computer Arithmetic Computer numbers are loaded into register for processing Registers typically are 32 or 64 bits wide, and CPUs have a few dozen registers for various purposes The
More informationRepresenting numbers on the computer. Computer memory/processors consist of items that exist in one of two possible states (binary states).
Representing numbers on the computer. Computer memory/processors consist of items that exist in one of two possible states (binary states). These states are usually labeled 0 and 1. Each item in memory
More informationObjects and Types. COMS W1007 Introduction to Computer Science. Christopher Conway 29 May 2003
Objects and Types COMS W1007 Introduction to Computer Science Christopher Conway 29 May 2003 Java Programs A Java program contains at least one class definition. public class Hello { public static void
More informationReals 1. Floatingpoint numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.
Reals 1 13 Reals Floatingpoint numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. 13.1 Floatingpoint numbers Real numbers, those declared to be
More informationArithmetic for Computers. Hwansoo Han
Arithmetic for Computers Hwansoo Han Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing with overflow Floatingpoint real numbers Representation
More informationScientific Computing. Error Analysis
ECE257 Numerical Methods and Scientific Computing Error Analysis Today s s class: Introduction to error analysis Approximations RoundOff Errors Introduction Error is the difference between the exact solution
More informationFloatingPoint Arithmetic
FloatingPoint Arithmetic if ((A + A)  A == A) { SelfDestruct() } Reading: Study Chapter 3. L12 Multiplication 1 Approximating Real Numbers on Computers Thus far, we ve entirely ignored one of the most
More informationREMEMBER TO REGISTER FOR THE EXAM.
REMEMBER TO REGISTER FOR THE EXAM http://tenta.angstrom.uu.se/tenta/ Floating point representation How are numbers actually stored? Some performance consequences and tricks Encoding Byte Values Byte =
More informationThe ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop.
CS 320 Ch 10 Computer Arithmetic The ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop. Signed integers are typically represented in signmagnitude
More informationThe Sign consists of a single bit. If this bit is '1', then the number is negative. If this bit is '0', then the number is positive.
IEEE 754 Standard  Overview Frozen Content Modified by on 13Sep2017 Before discussing the actual WB_FPU  Wishbone Floating Point Unit peripheral in detail, it is worth spending some time to look at
More informationIEEE Floating Point Numbers Overview
COMP 40: Machine Structure and Assembly Language Programming (Fall 2015) IEEE Floating Point Numbers Overview Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah
More informationUp next. Midterm. Today s lecture. To follow
Up next Midterm Next Friday in class Exams page on web site has info + practice problems Excited for you to rock the exams like you have been the assignments! Today s lecture Back to numbers, bits, data
More informationChapter 2. Data Representation in Computer Systems
Chapter 2 Data Representation in Computer Systems Chapter 2 Objectives Understand the fundamentals of numerical data representation and manipulation in digital computers. Master the skill of converting
More information18642: Floating Point Blues
18642: Floating Point Blues 10/23/2017 1 Floating Point Math AntiPatterns: Not accounting for roundoff errors Tests for floating point equality Not handling special values Float used if integer does
More informationFloating Point Arithmetic
Floating Point Arithmetic Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3050: Theory on Computer Architectures, Spring 2017, Jinkyu Jeong (jinkyu@skku.edu)
More informationData Representation and Introduction to Visualization
Data Representation and Introduction to Visualization Massimo Ricotti ricotti@astro.umd.edu University of Maryland Data Representation and Introduction to Visualization p.1/18 VISUALIZATION Visualization
More informationCHAPTER 5 Computer Arithmetic and RoundOff Errors
CHAPTER 5 Computer Arithmetic and RoundOff Errors In the two previous chapters we have seen how numbers can be represented in the binary numeral system and how this is the basis for representing numbers
More informationComputer Arithmetic Ch 8
Computer Arithmetic Ch 8 ALU Integer Representation Integer Arithmetic FloatingPoint Representation FloatingPoint Arithmetic 1 Arithmetic Logical Unit (ALU) (2) (aritmeettislooginen yksikkö) Does all
More informationComputer Arithmetic Ch 8
Computer Arithmetic Ch 8 ALU Integer Representation Integer Arithmetic FloatingPoint Representation FloatingPoint Arithmetic 1 Arithmetic Logical Unit (ALU) (2) Does all work in CPU (aritmeettislooginen
More information1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM
1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM 1.1 Introduction Given that digital logic and memory devices are based on two electrical states (on and off), it is natural to use a number
More informationCS367 Test 1 Review Guide
CS367 Test 1 Review Guide This guide tries to revisit what topics we've covered, and also to briefly suggest/hint at types of questions that might show up on the test. Anything on slides, assigned reading,
More informationClasses of Real Numbers 1/2. The Real Line
Classes of Real Numbers All real numbers can be represented by a line: 1/2 π 1 0 1 2 3 4 real numbers The Real Line { integers rational numbers nonintegral fractions irrational numbers Rational numbers
More informationThe Perils of Floating Point
The Perils of Floating Point by Bruce M. Bush Copyright (c) 1996 Lahey Computer Systems, Inc. Permission to copy is granted with acknowledgement of the source. Many great engineering and scientific advances
More information±M R ±E, S M CHARACTERISTIC MANTISSA 1 k j
ENEE 350 c C. B. Silio, Jan., 2010 FLOATING POINT REPRESENTATIONS It is assumed that the student is familiar with the discussion in Appendix B of the text by A. Tanenbaum, Structured Computer Organization,
More informationWhat Every Computer Scientist Should Know About Floating Point Arithmetic
What Every Computer Scientist Should Know About Floating Point Arithmetic E Note This document is an edited reprint of the paper What Every Computer Scientist Should Know About FloatingPoint Arithmetic,
More informationNumber Systems & Encoding
Number Systems & Encoding Lecturer: Sri Parameswaran Author: Hui Annie Guo Modified: Sri Parameswaran Week2 1 Lecture overview Basics of computing with digital systems Binary numbers Floating point numbers
More informationA Level Computing. Contents. For the Exam:
A Level Computing Contents For the Exam:... 1 Revision of Binary... 2 Computing Mathematics Revision... 2 Binary Addition/Subtraction revision... 3 BCD... 3 Sign and Magnitude... 4 2 s Compliment... 4
More informationNumerical Precision. Or, why my numbers aren t numbering right. 1 of 15
Numerical Precision Or, why my numbers aren t numbering right 1 of 15 What s the deal? Maybe you ve seen this #include int main() { float val = 3.6f; printf( %.20f \n, val); Print a float with
More informationFloatingPoint Arithmetic
FloatingPoint Arithmetic if ((A + A)  A == A) { SelfDestruct() } Reading: Study Chapter 4. L12 Multiplication 1 Why Floating Point? Aren t Integers enough? Many applications require numbers with a VERY
More informationmith College Computer Science FixedPoint & FloatingPoint Number Formats CSC231 Assembly Language Week #14 Dominique Thiébaut
mith College Computer Science FixedPoint & FloatingPoint Number Formats CSC231 Assembly Language Week #14 Dominique Thiébaut dthiebaut@smith.edu Reference http://cs.smith.edu/dftwiki/index.php/ CSC231_An_Introduction_to_Fixed_and_Floating
More informationFloating Point. What can be represented in N bits? 0 to 2N1. 9,349,398,989,787,762,244,859,087, x 1067
MIPS Floating Point Operations Cptr280 Dr Curtis Nelson Floating Point What can be represented in N bits? Unsigned 2 s Complement 0 to 2N12N1 to 2N11 But, what about Very large numbers? 9,349,398,989,787,762,244,859,087,678
More informationChapter 4: Data Representations
Chapter 4: Data Representations Integer Representations o unsigned o signmagnitude o one's complement o two's complement o bias o comparison o sign extension o overflow Character Representations Floating
More informationModule 2: Computer Arithmetic
Module 2: Computer Arithmetic 1 B O O K : C O M P U T E R O R G A N I Z A T I O N A N D D E S I G N, 3 E D, D A V I D L. P A T T E R S O N A N D J O H N L. H A N N E S S Y, M O R G A N K A U F M A N N
More informationChapter 2 Bits, Data Types, and Operations
Chapter 2 Bits, Data Types, and Operations How do we represent data in a computer? At the lowest level, a computer is an electronic machine. works by controlling the flow of electrons Easy to recognize
More informationComputer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2
Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up
More informationFloatingPoint Arithmetic
FloatingPoint Arithmetic if ((A + A)  A == A) { SelfDestruct() } L11 Floating Point 1 What is the problem? Many numeric applications require numbers over a VERY large range. (e.g. nanoseconds to centuries)
More informationNumber Systems and Computer Arithmetic
Number Systems and Computer Arithmetic Counting to four billion two fingers at a time What do all those bits mean now? bits (011011011100010...01) instruction Rformat Iformat... integer data number text
More informationComputer Arithmetic. The Fast drives out the Slow even if the Fast is wrong. by David Goldberg (Xerox Palo Alto Research Center) W.
A Computer Arithmetic by David Goldberg (Xerox Palo Alto Research Center) The Fast drives out the Slow even if the Fast is wrong. W. Kahan A.1 Introduction A1 A.2 Basic Techniques of Integer Arithmetic
More informationChapter 2 Data Representations
Computer Engineering Chapter 2 Data Representations Hiroaki Kobayashi 4/21/2008 4/21/2008 1 Agenda in Chapter 2 Translation between binary numbers and decimal numbers Data Representations for Integers
More informationFloating Point. CSC207 Fall 2017
Floating Point CSC207 Fall 2017 Ariane 5 Rocket Launch Ariane 5 rocket explosion In 1996, the European Space Agency s Ariane 5 rocket exploded 40 seconds after launch. During conversion of a 64bit to
More informationC NUMERIC FORMATS. Overview. IEEE SinglePrecision Floatingpoint Data Format. Figure C0. Table C0. Listing C0.
C NUMERIC FORMATS Figure C. Table C. Listing C. Overview The DSP supports the 32bit singleprecision floatingpoint data format defined in the IEEE Standard 754/854. In addition, the DSP supports an
More informationNumber Systems. Binary Numbers. Appendix. Decimal notation represents numbers as powers of 10, for example
Appendix F Number Systems Binary Numbers Decimal notation represents numbers as powers of 10, for example 1729 1 103 7 102 2 101 9 100 decimal = + + + There is no particular reason for the choice of 10,
More informationChapter 3 Arithmetic for Computers (Part 2)
Department of Electr rical Eng ineering, Chapter 3 Arithmetic for Computers (Part 2) 王振傑 (ChenChieh Wang) ccwang@mail.ee.ncku.edu.tw ncku edu Depar rtment of Electr rical Eng ineering, FengChia Unive
More informationComputer Systems Programming. Practice Midterm. Name:
Computer Systems Programming Practice Midterm Name: 1. (4 pts) (K&R Ch 14) What is the output of the following C code? main() { int i = 6; int j = 35; printf( %d %d\n,i++, ++j); i = i >
More information1010 2?= ?= CS 64 Lecture 2 Data Representation. Decimal Numbers: Base 10. Reading: FLD Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
CS 64 Lecture 2 Data Representation Reading: FLD 1.21.4 Decimal Numbers: Base 10 Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Example: 3271 = (3x10 3 ) + (2x10 2 ) + (7x10 1 ) + (1x10 0 ) 1010 10?= 1010 2?= 1
More information