CHAPTER 2 Number Systems, Operations, and Codes Digital Fundamentals CHAPTER 2 Number Systems, Operations, and Codes
Decimal Numbers The decimal number system has ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 The decimal numbering system has a base of 10 with each position weighted by a factor of 10:
Binary Numbers Two digits called bits 0 or 1 Right most bit is least significant bit Left most bit is most significant bit Each position is weighted by a factor of 2. 23 22 21 20 . 2-1 2-2 2-3 2-4 Decimal point
Counting in Binary Decimal Number Binary Number 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 23 22 21 20
Figure 2–1 Illustration of a simple binary counting application. Thomas L. Floyd Digital Fundamentals, 9e Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey 07458 All rights reserved.
Binary Numbers The binary number system has two digits: 0 and 1 The binary numbering system has a base of 2 with each position weighted by a factor of 2:
Binary to Decimal Add the weights of all the bits that are 1. Ignore the bits that are 0. Convert 1101101 to decimal. 1st determine the weights 26 25 24 23 22 21 20 1 1 0 1 1 0 1 1 1 0 1 1 0 1 = 26 + 25 + 23 + 22 + 20 = 64 + 32 + 8 + 4 + 1 = 109
Decimal-to-Binary Conversion Sum-of-weights method Repeated division-by-2 method Conversion of decimal fractions to binary
Repeated Division by 2 Divide the number by 2 and write down the remainder. Continue the process until the whole-number quotient is 0. Convert decimal 19 to binary. Convert decimal 45 to binary.
Decimal Fractions Repeated multiplication by 2 Multiply the decimal fraction by 2 Write down the carry bit if more than 1 Continue process until you have the desired number of bits or when the fractional part is all zeros.
Convert 0.3125 to binary Carry MSB LSB 0.0 1 0 1 0.3125 X 2 = 0.625 0 0.625 X 2 = 1.25 1 0.25 X 2 = 0.50 0 0.50 X 2 = 1.00 1
Binary Arithmetic Binary addition Binary subtraction Binary multiplication Binary division
Complements of Binary Numbers 1’s complements 2’s complements
Complements of Binary Numbers 1’s complement Change all 1s to 0s and all 0s to 1s
Complements of Binary Numbers 2’s complement Find 1’s complement and then add 1
Signed Numbers
Topics for Signed Numbers Signed-magnitude form 1’s and 2’s complement form Decimal value of signed numbers (How to convert) Range of values (max and min) Floating-point numbers
Signed Numbers Signed-magnitude form The sign bit is the left-most bit in a signed binary number A 0 sign bit indicates a positive magnitude A 1 sign bit indicates a negative magnitude
Signed Numbers 1’s complement form 2’s complement form A negative value is the 1’s complement of the corresponding positive value 2’s complement form A negative value is the 2’s complement of the corresponding positive value
Signed Numbers Decimal value of signed numbers Sign-magnitude 1’s complement 2’s complement
Signed Numbers Range of Values Total combinations = 2n 2’s complement form: – (2n – 1) to + (2n – 1 – 1) Range for 8 bit number: n = 8 -(28-1) = -27 = -128 minimum +(28-1) – 1 = +27 - 1 = +127 maximum Total combination of numbers is 28 = 256.
Signed Numbers Range for 16 bit number: n = 16 -(216-1) = -215 = -32768 minimum +(216-1) - 1 = +215 = +32767 maximum Total combinations is 216 = 65536 (64K) 8 bit examples: 10000000 = -128 11111111 = -1 10000001 = -127 01111111 = +127
Signed Numbers Floating-point numbers Two Parts Three forms Can represent very large or very small numbers based on scientific notation. Binary point “floats”. Two Parts Mantissa represents magnitude of number Exponent represents number of places that binary point is to be moved Three forms Single-precision (32 bits) float Double-precision (64 bits) double Extended-precision (80 bits) long double Also have Quadruple and Quadruple extended!
Single Precision IEEE 754 standard 32 bits S Exponent (E) Mantissa (fraction, F) 1 bit 8 bits 23 bits IEEE 754 standard Mantissa (F) has hidden bit so actually has 24 bits. Gives 7 significant figures. 1st bit in mantissa is always a one Exponent (E) is biased by 127 called Excess-127 Notation Add 127 to exponent so easier to compare Range of exponents is -126 to +128 Sign (S) bit tells whether number is negative or positive
Single Precision Example: Convert 577710 to Floating Point 1st, convert to binary using divide by 2 method 577710 = 10110100100012 Positive number, so sign bit (S) equals 0. 2nd, count number of places to move binary point 10110100100012 = 1.011010010001 x 212 Add 127 to 12 = 13910 = 100010112 0 10001011 01101001000100000000000 S E F Fill in with trailing zeroes Mantissa is fractional part, 011010010001 Finally, put everything together
Special Cases Zero and infinity are special cases Not a Number (NaN) Can have +0 or -0 depending on sign bit Can also have +∞ or -∞ Not a Number (NaN) if underflow or overflow Type Exponent Mantissa Zeroes Denormalized numbers non zero Normalized numbers 1 to 2e − 2 any Infinities 2e − 1 NaNs
Examples Type Exponent Mantissa Value Zero 0000 0000 000 0000 0000 0000 0000 0000 0.0 One 0111 1111 1.0 Denormalized number 100 0000 0000 0000 0000 0000 5.9×10-39 Large normalized number 1111 1110 111 1111 1111 1111 1111 1111 3.4×1038 Small normalized number 0000 0001 1.18×10-38 Infinity 1111 1111 NaN 010 0000 0000 0000 0000 0000
Double Precision Exponent has 11 bits so uses Excess-1023 Notation Mantissa has 53 bits (one hidden) 53 bits gives 16 significant figures
Arithmetic Operations with Signed Numbers Addition Subtraction Multiplication Division
Arithmetic Operations with Signed Numbers Addition of Signed Numbers The parts of an addition function are: Augend - The first number Addend - The second number Sum - The result Numbers are always added two at a time.
Arithmetic Operations with Signed Numbers Four conditions for adding numbers: 1. Both numbers are positive. 2. A positive number that is larger than a negative number. 3. A negative number that is larger than a positive number. 4. Both numbers are negative.
Arithmetic Operations with Signed Numbers Signs for Addition When both numbers are positive, the sum is positive. When the larger number is positive and the smaller is negative, the sum is positive. The carry is discarded.
Arithmetic Operations with Signed Numbers Signs for Addition When the larger number is negative and the smaller is positive, the sum is negative (2’s complement form). When both numbers are negative, the sum is negative (2’s complement form). The carry bit is discarded.
Examples (8 bit numbers) Add 7 and 4 (both positive) Add 15 and -6 (positive > negative) Add 16 and -24 (negative > positive) Add -5 and -9 (both negative) 00000111 7 +00000100 + 4 00001011 11 00001111 15 +11111010 + -6 1 00001001 9 Discard carry 00010000 16 +11101000 + -24 11111000 -8 Sign bit is negative so negative number in 2’s complement form 11111011 -5 +11110111 + -9 1 11110010 -14 Discard carry
Overflow Overflow occurs when number of bits in sum exceeds number of bits in addend or augend. Overflow is indicated by the wrong sign. Occurs only when both numbers are positive or both numbers are negative 01111101 126 + 00111010 + 58 _________ ____ 10110111 183 Sign Incorrect Magnitude Incorrect
Arithmetic Operations with Signed Numbers Subtraction of Signed Numbers The parts of a subtraction function are: Minuend - The first number Subtrahend - The second number Difference - The result Subtraction is addition with the sign of the subtrahend changed.
Arithmetic Operations with Signed Numbers Subtraction The sign of a positive or negative binary number is changed by taking its 2’s complement To subtract two signed numbers, take the 2’s complement of the subtrahend and add. Discard any final carry bit.
Subtraction Examples Find 8 minus 3. Find 12 minus -9. 00001000 8 +11111101 - 3 1 00000101 5 Discard carry Minuend Subtrahend Difference 00001100 12 +00001001 - -9 00010101 21 11100111 -25 +11101101 - 19 1 11010100 -44 Discard carry 10001000 -120 +00011110 - -30 10100110 -90
Arithmetic Operations with Signed Numbers Multiplication of Signed Numbers The parts of a multiplication function are: Multiplicand - First number Multiplier - Second number Product - Result Multiplication is equivalent to adding a number to itself a number of times equal to the multiplier.
Arithmetic Operations with Signed Numbers There are two methods for multiplication: Direct addition add multiplicand multiple times equal to the multiplier Can take a long time if multiplier is large Partial products Similar to long hand multiplication The method of partial products is the most commonly used.
Arithmetic Operations with Signed Numbers Multiplication of Signed Numbers If the signs are the same, the product is positive. (+ X + = + or - X - = +) If the signs are different, the product is negative. (+ X - = - or - X + = -)
Multiplication Example Both numbers must be in uncomplemented form Multiply 3 by -5. Opposite signs, so product will be negative. 310 = 000000112 -510 = 111110112 2’s complement of -5 00000101 00000011 Multiplicand X 00000101 Multiplier 00000011 First partial product + 0000000 Second partial product 00000011 Sum of 1st and 2nd + 000011 Third partial product 00001111 Sum and Final Product Final result is negative, so take 2’s complement. 11110001 is the result which in decimal is -15.
Arithmetic Operations with Signed Numbers Division of Signed Numbers The parts of a division operation are: Dividend Divisor Quotient Division is equivalent to subtracting the divisor from the dividend a number of times equal to the quotient.
Arithmetic Operations with Signed Numbers Division of Signed Numbers If the signs are the same, the quotient is positive. (+ ÷ + = + or - ÷ - = +) If the signs are different, the quotient is negative. (+ ÷ - = - or - ÷ + = -)
Division Example Both numbers must be in uncomplemented form Divide 01100100 by 00110010. Both numbers are positive so quotient will be positive. Set the quotient to zero initially. quotient: 00000000 01100100 Dividend + 11001110 2’s complement of Divisor 1 00110010 First partial remainder Add 1 to quotient: 00000000 + 1 = 00000001 Subtract the divisor from the dividend by using 2’s complement addition. (11001110) Ignore the carry bit. 00110010 First partial remainder + 11001110 2’s complement of Divisor 1 00000000 zero remainder Add 1 to quotient: 00000001 + 1 = 00000010 Subtract the divisor from the 1st partial remainder using 2’s complement addition. So final quotient is 00000010 and final remainder is 00000000
Hexadecimal Numbers
Hexadecimal Numbers Decimal, binary, and hexadecimal numbers 4 bits is a nibble FF16 = 25510
Hexadecimal Numbers Binary-to-hexadecimal conversion Hexadecimal-to-decimal conversion Decimal-to-hexadecimal conversion
Hexadecimal Numbers Binary-to-hexadecimal conversion Break the binary number into 4-bit groups Replace each group with the hexadecimal equivalent Convert 1100101001010111 to Hex C A 5 7 = CA5716 Convert 10A416 to binary 0001 0000 1010 0100 = 0001000010100100
Hexadecimal Numbers Hexadecimal-to-decimal conversion Convert the hexadecimal to groups of 4-bit binary Convert the binary to decimal
Hexadecimal Numbers Decimal-to-hexadecimal conversion Convert to binary by repeated division by 2 and then convert binary to hex Repeated division by 16
Figure 2–4 Getting the 2’s complement of a hexadecimal number, Method 1.
Figure 2–5 Getting the 2’s complement of a hexadecimal number, Method 2.
Octal Not used as frequently Convert binary to octal Can group in 3 bits instead of 4 bits like Hex. Symbols range from 0 to 7 Example. Convert 01011010 to octal. 1 3 2 = 1328 Example. Convert 1058 to binary. 01 000 101 = 01000101
Binary Coded Decimal (BCD)
Binary Coded Decimal (BCD) Decimal and BCD digits
Digital Codes
Digital Codes Gray code ASCII code
Gray Code Unweighted - no weights associated to the bit positions Only one bit change from one code word to the other. Minimizes chance of error
Conversion Binary to Gray code Example. Convert 10110 to Gray Code MSB of Gray is set to the MSB of binary Going from left to right, add each adjacent pair of binary code bits. Discard carries. Example. Convert 10110 to Gray Code MSB of binary number is 1, so set the MSB of the Gray Code to 1. 1 0 1 1 0 Binary 1 Gray code Add adjacent pairs of binary numbers 1+0 1 1+1 0+1 1 1+0 1
Conversion Gray code to Binary Example. Convert 11011 to binary MSB of binary is set to the MSB of Gray code Going from left to right, add the binary bit to the next Gray code bit. Discard carries. Example. Convert 11011 to binary MSB of Gray Code is 1, so set the MSB of the binary number to 1. 1 1 0 1 1 Gray Code 1 Binary + + + 1 +
Figure 2–7 A simplified illustration of how the Gray code solves the error problem in shaft position encoders.
American Standard Code for Information Interchange (ASCII) ASCII code (1st 32 are control characters) 128 characters Uses 7 bits
ASCII code (graphic symbols 20h – 3Fh)
Digital Codes ASCII code (graphic symbols 40h – 5Fh)
Digital Codes ASCII code (graphic symbols 60h – 7Fh)
Digital Codes Extended ASCII code (80h – FFh) Non-English alphabetic characters Currency symbols Greek letters Math symbols Drawing characters Bar graphing characters Shading characters
Error Detection and Correction Codes
Error Detection and Correction Codes Parity error codes Odd parity – odd sum of 1’s Even parity – even sum of 1’s The sum includes the parity bit Parity bit can be at beginning or end of the code. Can detect single bit errors, but not 2 or more errors. Hamming error codes
Error Detection and Correction Codes Parity error codes
Error Detection and Correction Codes 0000000 0000111 0011011 0011110 0101010 0101101 0110011 0110100 1001011 1001100 1010010 1010101 1100001 1100110 1111000 1111111 1 2 3 4 5 6 7 8 9 A B C D E F Hamming error codes Hamming code words Hex equivalent of the data bits