240 likes | 382 Views
Computer Systems 1 Fundamentals of Computing. Negative & Real Number Binary. Negative & Real Binary. Binary subtraction Real numbers in binary Ranges Fixed point Floating point notation. Binary Subtraction. Using two’s complement we can perform binary subtraction Essentially addition
E N D
Computer Systems 1Fundamentals of Computing Negative & Real Number Binary
Negative & Real Binary • Binary subtraction • Real numbers in binary • Ranges • Fixed point • Floating point notation Computer Systems 1 (2004-2005)
Binary Subtraction • Using two’s complement we can perform binary subtraction • Essentially addition • e.g- 20 - 13 = 20 + (-13) • Take two binary numbers • The first number is called the minuend • Second number is called the subtrahend • Second number negated using two’s complement • Binary addition is then applied • Drop carry from result if required Computer Systems 1 (2004-2005)
Binary Subtraction • E.g. • 20 - 13 = 20 + (-13) = 7 = 010100 (20) + 110011 (t/c -13)(001101 = 110010+1) 1000111 • Drop carried leading 1 • = 000111 = decimal 7 Computer Systems 1 (2004-2005)
Binary Subtraction • What if the minuend is smaller than the subtrahend (negative number result)? • E.g. • 20 - 23 = -3 • Or • 20 + (-23) = (-3) = 010100 (20) + 101001 (t/c -23)(010111 = 101000+1) 111101 111101 = -3 Computer Systems 1 (2004-2005)
Number Range • Number of bits in a word determine the number range • The sign bit from two’s complement and sign & magnitude representation methods reduce the range from that of an unsigned number • Sign bit is ignored using Sign & Magnitude • RANGE (4 bit): 1111 to 0111 (-7 to 7) • RANGE (8 bit): 11111111 to 01111111 (-127 to 127) • Sign bit is used in the calculation of Two’s Complement numbers but still reduces the range • Because if sign indicator is used negate value • RANGE (4 bit): 1000 to 0111 (-8 to 7) • RANGE (8 bit): 10000000 to 01111111 (-128 to 127) Computer Systems 1 (2004-2005)
Number Range - Overflow • If the result of a calculation goes beyond the fixed bit size of a word then overflow has occurred • Overflow is detected and highlighted by the ALU • A common problem is that the sign bit is used as part of the magnitude of a number • Especially when potentially working with negative numbers • E.g. for 96 + 64 = 160 = 01100000 + 01000000 10100000 = 160 (is -96 in two’s complement) • Overcome by adding more bits to the word size Computer Systems 1 (2004-2005)
Real Numbers • So far we have looked at integer methods for number representation • Real numbers are integers and fractions of a number system • Essentially all values • Real numbers provide greater accuracy than integers • To be useful the computer must be able to work with real numbers • Methods of representing real numbers using binary • Fixed point notation • Floating point notation Computer Systems 1 (2004-2005)
INTEGER . FRACTION Fixed Point Notation • Splits numbers using a point “.” • Integer section • Fractional section • Fraction is assumed to be to the right of the point • Degree of precision is decided by position of ‘point’ • Point can be placed anywhere in the binary word • More digits to the left means greater number of integers to be represented • Essentially a greater numerical range • More digits to the right means greater accuracy of real numbers • Fractional information can be more precise • Point position within a word is assumed in practice • The same binary word can have many different values depending on the position of the point Computer Systems 1 (2004-2005)
Fixed Point Notation • E.g- • Using 8 bit words • 000010.11 = 2.75 • 1x2 & (1x0.5) + (1x0.25) • 000101.1 = 5.5 • (1x4) + (1x1) & 1x0.5 • Fixed point numbers are prone to overflow and underflow when using fixed word sizes • Overflow with larger numbers • Underflow when fractions are too small Computer Systems 1 (2004-2005)
Floating Point Notation • The point is capable of moving • Floating • Converting fixed point to floating point is normalisation • Representation is achieved by: • A mantissa • An exponent • And a radix • m * re • m = mantissa (+ or -), r = radix, e = exponent (+ or -) • In decimal Radix is 10 • In binary Radix is 2 • E.g.- in decimal 5.2 * 106 (=5,200,000) Computer Systems 1 (2004-2005)
Floating Point Notation • E.g.- ‘Normal’ Decimal numbers • 2.5 * 103 = 2500 • 8.9 * 108 = 890,000,000 • 4.3 * 102 = 430 • E.g.- Decimal Numbers < 1 and > 0 • 5.24 * 10-5 = 0.0000524 • 2.531 * 10-7 = 0.0000002531 • 6.7 * 10-2 = 0.067 Computer Systems 1 (2004-2005)
Floating Point Notation • Converting FIXED to FLOAT • Binary Floating Point • If the number is greater than one: • Point floats to the left • Position before the MSB • If the number is a fraction less than ONE but greater than 0, and binary 1 doesn’t follow the point (0.5) • Point floats to the right • Position before first non-zero bit • Negative exponent (e) Computer Systems 1 (2004-2005)
Floating Point Notation • E.g.- ‘Normal’ Binary numbers • 101.01010 = 0.10101010 * 23 • 1010.0110 = 0.10100110 * 24 • 111011.01 = 0.11101101 * 26 • E.g.- Binary Numbers less than 1 and > 0 • 0.0011001 = 0.11001 * 2-2 • 0.0000101 = 0.101 * 2-4 • 0.0000011 = 0.11 * 2-5 Computer Systems 1 (2004-2005)
Floating Point Notation • Storing floating point numbers • Two parts to be stored • Mantissa • More bits the greater the magnitude • Exponent • More bits the greater the precision • Usually allocated a third to a half of the bits • E.g- in a 16-bit word • Mantissa is given 12 bits • Exponent gets 4 bits • Or- in a 16-bit word • Mantissa = 10 bits • Exponent = 6 bits Computer Systems 1 (2004-2005)
SIGN | Mantissa (fraction) Exponent (integer) 1 sign bit + 11 bits = 12 bits 4 bits Floating Point Notation • Allocation of bits • E.g.- 16 bit allocation • Binary point appears to the right of the sign bit Computer Systems 1 (2004-2005)
Representing floating point numbers • E.g.- 16-bit system • 1110.0000011 = 0.11100000011 * 24 • Mantissa = 0111000000112 • Exponent = 01002 • Can be written 0111000000112 * 01002 • Actually stored as: • 01110000001101002 • because number format for floating point has already been decided • We know where the mantissa ends, etc. Computer Systems 1 (2004-2005)
Negative floating point • Negative floating point numbers can be stored using the Two’s complement method • A normalised positive mantissa must be between 0.5 and less than 1 (0.100..n – 0.111..n) • A normalised negative mantissa must be between -1 and less than -0.5 (1.000..n – 1.011..n) • Mantissa • Sign bit before binary point is used • 1 = negative • 0 = positive • MSB to right of binary point • 1 = positive • 0 = negative • If sign bit and MSB are the same then normalisation is required Computer Systems 1 (2004-2005)
Negative floating point • E.g.- • 0.1xxxxxxxxxx = positive mantissa • 1.0xxxxxxxxxx = negative mantissa • 0.0xxxxxxxxxx = invalid positive • 1.1xxxxxxxxxx = invalid negative • Exponent • Usually, normal Two’s complement rules apply • Because exponent does not use a binary point • E.g.- 11002 • = (1 * -8) + (1 * 4) • = -410 Computer Systems 1 (2004-2005)
Floating point accuracy • We can see that precision can be lost when using floating point numbers • Especially when performing calculations • Methods of improving precision become useful • Ways to do this: • Mantissa length • Rounding • Double precision numbers & arithmetic Computer Systems 1 (2004-2005)
Floating point accuracy • Mantissa length • Increase the word size allocated to the mantissa storage • Still never completely solves the problem • Rounding • Attempt to reduce the problem cause by losing a binary 1 from the number • Occurs during shifting and normalisation • In rounding if the last bit to be discarded is a 1 then a 1 should be added to the LSB position • E.g.(5-bit num) – 1.0101 shifted = 0.10101 (last 1 is lost) • = 0.1010 when rounded with the 1 lost = 0.1011 • Can also cause more problems than it solves • Many different rounding algorithms Computer Systems 1 (2004-2005)
Double precision numbers • Uses two sequential memory words to store data when required • Most significant half • Least significant half • Can accommodate numbers being used or hold the result of calculations • Essentially expands the available size for the mantissa Computer Systems 1 (2004-2005)
CS1 - Week 23 • Binary subtraction using two’s complement • Actually addition • Normal subtraction • Subtraction with negative result • Ranges • Overflow • Underflow • Real number representation • Fixed point notation • Binary • Floating point notation • Decimal • Binary • Storage Computer Systems 1 (2004-2005)