390 likes | 436 Views
Computer Systems. Data Representation and Computer Arithmetic. Data Representation. Binary codes used to represent numbers Conversion between number systems Binary decimal Hexadecimal decimal Between arbitrary number systems Representation of positive/negative numbers
E N D
Computer Systems Data Representation andComputer Arithmetic
Data Representation • Binary codes used to represent numbers • Conversion between number systems • Binary decimal • Hexadecimal decimal • Between arbitrary number systems • Representation of positive/negative numbers • Floating point representation
11001010 00001101 Bit Byte Word Bit, Byte and Word • Bit is the smallest quantity that can be handled by computer: 1 or 0. • Byte is a group of 8 bits. • Word is the basic unit of data that can be operated by computer: e.g., 16 bits. Some architectures have 8, 32, or 64-bit words
Content of Word • Bit Pattern • May represent many things • Actual meaning of a particular bit pattern is given by the programmer • Computer itself cannot determine the meaning of the word • Classic question: Can you tell the meaning of a word picked randomly from the memory?
Instruction: (op-code) A single word defines an action that is to be performed by CPU • Numeric Quantity • Character: A to Z, a to z, 0 to 9, *, -, +, etc. • ASCII Code: - Representation of a character by 7 bits. - The ASCII for W is 101 01112, or 5716
Pixel (1) Pixel (Picture Element) • The smallest unit to construct a picture • 1bit/pixel for black-and-white pictures, >1 bits/pixel for gray scale or color pictures, e.g. 24bits/pixel. • A letter is represented by a group of pixels on computer screen.
Positional Notation • Weight is associated with the location within a number. • The 9 in 95 has weight 10 A number N in base b is represented by
Number Bases Decimal (b=10): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Binary (b=2): {0, 1} Octal (b=8): {0, 1, 2, 3, 4, 5, 6, 7} • Hexadecimal (b=16): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
How many binary bits are needed to represent an n-digits decimal? The value of an m-bit binary is up to The value of an n-digit decimal is up to so OR
How many bits are needed to represent an n-digits octal?How many bits are needed to represent an n-digits hexadecimal? Questions
Conversion of Integer- Decimal to Binary Divide a decimal successively by 2, record the remainder, until the result of the division is 0. 67/2 = 33 Rem.=1 33/2 = 16 Rem.=1 16/2 = 8 Rem.=0 8/2 = 4 Rem.=0 4/2 = 2 Rem.=0 2/2 = 1 Rem.=0 1/2 = 0 Rem.=1
Conversion of Integer- Decimal to Hexadecimal Divide a decimal successively by 16, record the remainder, until the result is 0 432/16 = 27 Rem.=0 27/16 = 1 Rem.=B 1/16 = 0 Rem.=1
Conversion of integer - Binary to Decimal Conversion of integer - Hexadecimal to Decimal
0 1 0 1 0 1 1 1 2 B 7 5 7 0010 1011 0111 2 5 7 0 1 0 1 0 1 1 1 1 2 010 101 111 7 Conversion of integer - Hexadecimal Binary Conversion of integer: - Octal Binary
0.687510 = 0.10112 Question: Convert 0.625? 0.110? Conversion of Fraction - Decimal to Binary The fraction is repeatedly multiplied by 2, the integer part is stripped and recorded. 0.687510 * 2 =1.375 1 0.37510 * 2 = 0.75 0 0.7510 * 2 = 1.5 1 0.510 * 2 = 1.0 1 0.010 * 2 = 0.0 end
Convert 0.6D5? Convert 0.1100101011 Conversion of Fraction - Binary Hexadecimal 0.1010110012 = 0.1010 1100 10002 = 0.AC816 0.7BC16 = 0.0111 1011 11002 = 0.01111011112
Binary Coded Decimal (BCD) • A decimal digit is coded into 4 bits 1 byte can store 2 digits • Example: 1942 is encoded as 0001 1001 0100 0010 (2 bytes) • Disadvantages • Complex arithmetic • Inefficient use of storage • Advantage: • Can represent “real” number DecimalBCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
Binary Addition 0 0 1 1 0 1 1 1 + 0 1 0 1 0 1 1 0 1 1 1 1 1 Carry 1 0 0 0 1 1 0 1 Binary Subtraction ? use 2’s complementary arithmetic (later … )
Signed Integer Representations Sign-and-Magnitude 1’s Complement 2’s Complement
Problem: 00000000 = +0, 10000000 = -0 Sign-and-Magnitude Representation • Use the most significant bit (MSB) to indicate the sign of the number. • The MSB is 0 for positive, 1 for negative. • 8 bits represent -12710 to 12710 • Examples: 00101100 for +4410 10101100 for -4410
Problem: 00000000 = +0, 11111111 = -0 1’s Complement • Just flip the bits! • The MSB is 0 for positive, 1 for negative. • 8 bits represent -12710 to 12710 • Examples: 00101100 for +4410 11010011 for -4410
2’s Complement The 2’s complement for N is Example: Using 5 bits (n = 5), if N = 7, then 0 1 1 0 0 + 1 1 0 0 1 1) 0 0 1 0 1 12 -7 5 2’s complement = 1’s complement + 1 7 0 0 1 1 1 1’s complement 1 1 0 0 0 + 1 2’s complement 1 1 0 0 1 = -7
2’s comp. -34? 2’s Complement (con.) • To form the two’s complement of a number, simply invert the bits (1 to0, 0 to 1), and add 1 1’s complement + 1 1310 = 0 0 0 0 1 1 0 1 -1310 = 1 1 1 1 0 0 1 0 + 1 = 1 1 1 1 0 0 1 1
Properties of 2’s Complement One unique 0 MSB = 0, positive number MSB = 1, negative number The range is For 5 bits, the range is -1610 (10000) to +1510 (01111) The 2’s complement of the complement of X is X itself (Prove: )
X -Y 310 0 1 0 0 1 + 1 1 0 1 0 1) 0 0 0 1 1 - X - Y -1510 1 0 1 1 1 + 1 1 0 1 0 1) 1 0 0 0 1 2’s Complementary Arithmetic • Subtraction is performed using addition A - B = A + (-B) X = 910 = 010012, Y = 610 = 001102 -X = -910 = 101112, -Y = -610 = 110102
0 1 1 0 0 + 0 1 1 0 1 1 1 0 0 1 1 0 1 0 0 + 1 0 0 1 1 1) 0 0 1 1 1 12 +13 25 -12 -13 -25 Arithmetic Overflow • The overflow happens when positive + positive negative negative + negative positive If are MSBs, then the overflow bit v is expressed as
Arithmetic Overflow In practice, • Case I: A and B are + an-1 = __ bn-1 = __ cn = __ cn-1 = __ V = _____ • Case II: A and B are – an-1 = __ bn-1 = __ cn = __ cn-1 = __ V = _____ Most significant stage of full adder
What if we want to represent ? We need at least m > 3.3*n = 3.3*20 = 66 bits ! Fixed-point Arithmetic 3.62510 0011.10102 00111010 + 6.510 0110.10002+ 01101000 10.12510 10100010 The fraction point is added 10100010 -> 1010.00102
Floating Point Numbers • Scientific Notation a is mantissa, r is radix, e is exponent is for binary
IEEE Floating Point Format S: Sign bit, 1 bit E: Exponent, 8 bits B: Bias, 8 bits, 12710=0111 1111 F: mantissa
If we have 8 bits for exponent, to represent -5, we add 12710 (0111 1111) to -5, the result is 12210=0111 10102. IEEE Floating Point - Example Normalization, e.g., Use sign and magnitude representation for signed mantissa. Use biased exponent, e.g. in excess 127
Represent -2345.125 in 32 bits ? 1.510 in IEEE format? IEEE Floating Point - Example -2345.125 = -100100101001.0012 1) Normalization: 2) Negative mantissa, so S = 1 3) Exponent: E = 11 + 127 = 13810 = 100010102 4) Mantissa F = 00100101001 0010…000 1 10001010 00100101001001000…0
IEEE Floating Point Format – Special Cases • Zero: exponent and fraction all 0s • Denormalized: exponent all 0s, fraction non-zero for single precision: • Infinity: exponents all 1s, fraction all 0s sign bit determines +infinity or -infinity • Not a Number (NaN): exponents all 1s, fraction non-zero • A good reference is available at http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
Bit Patterns and Logical Operations AND OR NOT Exclusive OR They are bit-wise operations.
AND Operation • x AND y is true, if and only if both bits x and y are true. A = 1 1 0 0 1 0 1 1 B = 0 1 1 0 1 1 0 1 C=A AND B = 0 1 0 0 1 0 0 1 OR Operation • x OR y is true, if either bits x or y is true. A = 1 1 0 0 1 0 1 1 B = 0 1 1 0 1 1 0 1 C=A OR B = 1 1 1 0 1 1 1 1
NOT Operation • A 1 becomes 0, and a 0 becomes 1. A = 1 1 0 0 1 0 1 1 C = NOT A = 0 0 1 1 0 1 0 0 EOR (Exclusive OR) Operation • It is true, if and only if just one of inputs is true. A = 1 1 0 0 1 0 1 1 B = 0 1 1 0 1 1 0 1 C = A EOR B = 1 0 1 0 0 1 1 0