230 likes | 370 Views
ITEC 352. Lecture 7 Binary(2). Review. Homework due on Friday Questions Binary Addition Subtraction Encoding. Outline. Two’s complement Excess notation Floating point format. Two’s complement. Similar to one’s complement Solves issues No double 0
E N D
ITEC 352 Lecture 7 Binary(2)
Review • Homework due on Friday • Questions • Binary • Addition • Subtraction • Encoding
Outline • Two’s complement • Excess notation • Floating point format
Two’s complement • Similar to one’s complement • Solves issues • No double 0 • Addition / subtraction are the same • Small conversion cost • Copy all 0’s from right to left • Copy first one • Flip all other bits
Class discussion • Represent the following in one’s complement and 2’s complement: -9 -7 7 9
Excess Representation • Which one of the following two numbers represented in 1’s complement is greater? 1011 (or) 0100 What are the steps you had to go through to figure this out? We can avoid these steps by using an excess representation.
Excess representation Key idea: Make all negative numbers positive by shifting them up …. E.g., Suppose we want to represent numbers from -4 to +3. How do we make all negative numbers positive but at the same time preserving the difference in magnitudes between 2 numbers? We could do this by adding “+4” to all the numbers. Therefore, -4 becomes 0 -3 becomes 1 … 0 becomes 4 … 3 becomes 7 Because we shifted the numbers by 4, we call this Excess 4 representation
Excess Representation • How does this help? • Well consider, the question we asked earlier: Which one of the following two numbers is greater? 0000 or 0011 ? “0000” in Excess 4 representation is -4. 0011 is -1. Comparing numbers becomes easier when Excess notation is used.
Excessiveness • The “bias” or “excess” (e.g., 4 in the previous slide) can be any number. Usually the bias is the smallest number that we would like to represent. • E.g., if we want to represent numbers from -128 to +127, we will use Excess 128 representation. Because we need to consider “0”, we are stopping at 127 and not 128.
SUMMARY: Representing negative numbers in a 3 bit architecture (example)
Real numbers • Numbers of the form: 101.1110101101101011001010101101010 . Contain a fractional part. Why even bother with real numbers? Isn’t this some esoteric stuff that is never used??
Rationale • Floating point computations are everywhere • more common than simple integer computations. • Examples: • Any engineering discipline: e.g., Construction industry • Computer security (e.g., random number generation) • Computer games (several graphical computations) • Closer to reality: • My experience: NUMBER 1 reason why student programs don’t work in Programming contests!!
Real number problem • How to store infinitely many floating point numbers into a finite number of bits. • Consider a 34 digit binary number: 101.1110101101101011001010101101010 How can we store this in a computer whose bus width is 32?
Real number Numbers • Consider a 34 digit binary number: 101.1110101101101011001010101101010 How can we store this in a computer whose bus width is 32? Option 1: Split it into two parts (2 X 32-bit integers). Problem: Slows handling of arithmetic operations. Why? Option 2:Sacrifice some precision. This is the idea behind a real number representation called floating point numbers Can you come up with your own standard?
Standards • Come up with a standard such that the numbers: 10.101 10.100 Can be represented within 4 bits. Can your standard now represent: 100.11
Real numbers • A common way of representing real numbers is using “floating point numbers”. • E.g., • real number: 352.452 • Floating point number representations: 3.52452 * 102, or 35.2452 * 101, or 0.352452 * 103
Floating point • A real number: 352.452 can have many Floating point number representations: 3.52452 * 102, or 35.2452 * 101, or 0.352452 * 103 • To standardize the position of the floating point – it is normally represented as: • 3.52452 * 102 (only one digit to the left of the floating point).
Examples • Normalize the following numbers in base 10: 2345.452 How about in base 2: 101.1110 1111.0111
Base 10 • More terms: • Precision:number of digits in the significand • -- sometimes fractions are too large – we need to approximate. The precision tells us by how much. • Range: Number of digits in the exponent. • •Example Consider the number: 60234.45 • if precision is 4 and range is 2 then this number is represented as: • +(6.023 X 1023):
Base 2Floating Point Consider the binary numbers: 10.101 10.100 • 0.1001 • What is their normalized representation if precision = 4 and range = 2? • Do you see any error?
Base 2 Floating Point Numbers Consider the binary numbers: 10.101 10.100 • What is their representation if precision = 4 and range = 2? • Do you see any error? • Error is called the rounding error. Every programming language suffers from this.
How to live with error. • Floating point computations result in rounding errors (precision errors). • However, the key is: be consistent with errors. • For this, every language/architecture must follow one standard (so that the error is repeatable). • Most famous standard = IEEE 754 standard
Summary • Two’s complement • Excess notation • Buildup to floating point numbers