* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Number Systems, Operations, and Codes
Survey
Document related concepts
Classical Hamiltonian quaternions wikipedia , lookup
Law of large numbers wikipedia , lookup
History of logarithms wikipedia , lookup
Georg Cantor's first set theory article wikipedia , lookup
Infinitesimal wikipedia , lookup
Mathematics of radio engineering wikipedia , lookup
Surreal number wikipedia , lookup
Large numbers wikipedia , lookup
Real number wikipedia , lookup
Positional notation wikipedia , lookup
Location arithmetic wikipedia , lookup
Elementary mathematics wikipedia , lookup
Transcript
Number Systems & Operations Part II Arithmetic Operations with Signed Numbers Because the 2’s complement form for representing signed numbers is the most widely used in computer systems. We’ll limit to 2’s complement arithmetic on: Addition Subtraction Multiplication Division Addition 4 cases that can occur when 2 signed numbers are added: Both numbers positive Positive number with magnitude larger than negative number Negative number with magnitude larger than positive number Both numbers negative Addition Both numbers positive: ex: 00000111 +00000100 00001011 7 +4 11 The sum is positive and is therefore in true (uncomplemented) binary. Addition Positive number with magnitude larger than negative number: ex: Discard carry 00001111 +11111010 1 00001001 15 + -6 9 The final carry bit is discarded. The sum is positive and is therefore in true (uncomplemented) binary. Addition Negative number with magnitude larger than positive number: ex: 00010000 +11101000 11111000 16 + -24 -8 The sum is negative and therefore in 2’s complement form. Addition Both numbers negative: ex: Discard carry 11111011 +11110111 1 11110010 -5 + -9 -14 The final carry bit is discarded. The sum is negative and therefore in 2’s complement form. Addition Remark: The negative numbers are stored in 2’s complement form so, as you can see, the addition process is very simple: Add the two numbers and discard any final carry bit. Addition Overflow condition: When two numbers are added and the number of bits required to represent the sum exceeds the number of bits in the two numbers, an overflow results as indicated by an incorrect sign bit. An overflow can occur only when both numbers are + or -. ex: 01111101 +00111010 10110111 Magnitude incorrect Sign incorrect 125 + 58 183 Addition Numbers are added two at a time: Computer add strings of numbers two numbers at a time. ex: add the signed numbers: 01000100, 00011011, 00001110, and 00010010 68 01000100 + 27 + 00011011 Add 1st two numbers 95 01011111 1st sum + 14 + 00001110 Add 3rd number 109 01101101 2nd sum + 18 + 00010010 Add 4th number 127 01111111 Final sum Subtraction Subtraction is a special case of addition. Subtraction is addition with the sign of the subtrahend changed. The result of a subtraction is called the difference. The sign of a positive or negative binary is changed by taking it’s 2’s complement. _______________________________ Subtrahend = ตัวลบ, Minuend = ตัวตัง้ Subtraction Since subtraction is simply an addition with the sign of the subtrahend changed, the process is stated as follows: To subtract two signed numbers, take the 2’s complement of the subtrahend and add. Discard any final carry. Subtraction ex: Perform each of the following subtraction of the signed numbers: (a) 00001000 – 00000011 (b) 00001100 – 11110111 (c) 11100111 – 00010011 (d) 10001000 - 11100010 (a) 00001000 +11111101 100000101 + (b) 00001100 +00001001 + 00010101 (c) 11100111 +11101101 111010100 -25 + -19 -44 8 -3 5 12 9 21 (d) 10001000 -120 +00011110 + 30 10100110 -90 Multiplication The multiplication operation in most computer is accomplished using addition. There are 2 basic methods: Direct addition Partial products Multiplication Direct addition Add the multiplicand a number of times equal to the multiplier. For example, 8x3 = 8+8+8 = 24 Disadvantage lengthy operations When two binary numbers are multiplied, both numbers MUST BE in true (uncomplemented) form. Let’s try multiply the signed binary numbers: 010011012 and 000001002 using direct addition. _______________________________ Multiplier = ตัวคูณ, multiplicand = ตัวตัง้ Multiplication Partial products The multiplicand is multiplied by each multiplier digit beginning with the LSD. 239 multiplicand x 123 multiplier 717 478 +239 . Multiplication Partial products 239 x 123 The result of the 717 multiplication of the 478 multiplicand by a multiplier +239 digit is called a partial product. multiplicand multiplier 1st part prod 2nd part prod 3rd part prod Multiplication Partial products Each successive partial product is shifted one place to the left and when all the partial products have been produced, they are added to get the final product. 239 x 123 717 478 +239 29397 multiplicand multiplier 1st part prod 2nd part prod 3rd part prod Final Product Multiplication The sign of the product of a multiplication depends on the signs of the multiplicand and the multiplier according to the following two rules: If the signs are the same, the product is positive. If the signs are different, the product is negative. Multiplication Step 1: Determine if the signs of the multiplicand and multiplier are the same or different. This determines what the sign of the product will be. 01010011 (multiplicand) 11000101 (multiplier) Multiplicand + Multiplier Product - Multiplication Step 2: Change any negative number to true form. Because most computers store negative numbers in 2’s comp, a 2’s comp operation is required to get the negative number into true form. 01010011 (multiplicand) 11000101 (multiplier) 00111011 (2’s comp) Multiplication Step 3: Starting with the LSB (multiplier), generate the partial products. Shift each successive partial product one bit to the left. Step 4: add each successive partial product to the sum of the previous partial products to get the final product. 01010011 (multiplicand) 11000101 (multiplier) 1010011 x 0111011 1010011 + 1010011 . 11111001 + 0000000 . 011111001 + 1010011 . 1110010001 + 1010011 . 100011000001 + 1010011 . 1001100100001 + 0000000 . 1001100100001 Multiplication Step 4: if the sign bit was determined in step 1 is negative, take the 2’s comp of the product. If positive, leave the product in true form. Attach the sign bit to the product. 01010011 (multiplicand) 11000101 (multiplier) 1001100100001 (final) 0110011011111 (2’s comp) According to step 1 the sign bit of the product must be 1 (negative). Hence: 10110011011111 Division The number in a division are the dividend, the devisor, and the quotient. dividend = quotient devisor The division op in computer is accomplished using subtraction. Since subtraction is done with an adder, division can also be accomplished with an adder. Division The quotient is the number of times that the divisor will go into the dividend. This means that the divisor can be subtracted from the dividend a number of times equal to the quotient. (let’s do 21/7) 21 - 7 14 - 7 7 - 7 0 The divisor was subtracted from the dividend 3 times before a remainder of zero was obtained. Therefore, the quotient is 3. Division The sign of the quotient depends on the signs of the dividend and the divisor according to the following two rules: If the signs are the same, the quotient is positive. If the signs are different, the quotient is negative. When 2 binary numbers are divided, both numbers MUST BE in true form. Division Step 1: Determine if the signs of the dividend and divisor are the same or different. This determines what the sign bit of the quotient will be. Initialize the quotient to zero. 01100100 (dividend) 00011001 (divisor) Dividend Divisor Quotient + + + Division Step 2: Subtract the divisor from the dividend using 2’s complement addition to get the first partial remainder and add 1 to the quotient. If this partial remainder is positive, go to step 3. If the partial remainder is zero or negative, the division is complete. 01100100 (dividend) 00011001 (divisor) 01100100 + 11100111 (2’s comp) 101001011 Quotient = 00000000+00000001 = 00000001 Note: The final carries are discarded. Division Step 3: Subtract the divisor from the partial remainder and add 1 to the quotient. If this partial remainder is positive, repeat for the next partial remainder. If the result is zero or negative, the division is complete. Stop when the result is zero (or negative) Quotient = 4 01100100 (dividend) 00011001 (divisor) 01001011 + 11100111 (2’s comp) 100110010 Quotient = 00000001+00000001 = 00000010 00110010 + 11100111 (2’s comp) 100011001 Quotient = 00000010+00000001 = 00000011 00011001 + 11100111 (2’s comp) 100000000 Quotient = 00000011+00000001 = 00000100 Hexadecimal and Octal Numbers Hexadecimal Numbers We will call it for short as “hex”. It has 16 characters. Digits 0-9 and letters A-F. It used primarily as a compact way of displaying or writing binary numbers since it is very easy to convert between bin and hex. Hex is widely used in computer and microprocessor applications. Hexadecimal Numbers Decimal Binary Hexadecimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Hexadecimal Numbers If you see ‘h’ mixing in numbers (in the context of computer systems), please note that it’s most likely that the numbers are hexadecimal numbers. (Be careful. ‘h’ is not one of A-F using in hex). For example 16h = 000101102 0Dh = 000011012 Hexadecimal Numbers Bin-to-Hex Conversion Simply break the binary number into 4-bit groups, starting at the right-most bit and replace each 4-bit group with the equivalent hex symbol. (a) 1100101001010111 1100101001010111 C A 5 = CA5716 7 (b) 111111000101101001 00111111000101101001 3 F 1 6 = 3F16916 9 Hexadecimal Numbers Hex-to-Bin Conversion Reverse the process (of bin-to-hex) and replace each hex symbol with the appropriate four bits. ex: Determine the binary numbers for the following hex numbers: (a) 10A4h 1 0 A 4 0001000010100100 (b) CF8Eh C F 8 E 1100111110001110 (c) 9742h 9 7 4 2 1001011101000010 Hexadecimal Numbers Hex-to-Dec Conversion 2 methods: Hex-to-Bin first and then Bin-to-Dec. Multiply the decimal values of each hex digits by its weight and then take the sum of these products. Hexadecimal Numbers Hex-to-Dec Conversion Hex-to-Bin first and then Bin-to-Dec ex: Convert the following hex numbers to decimal: (a) 1Ch 1Ch = 00011100 = 16+8+4 = 2810 (b) A85h A85h = 101010000101 = 2048+512+128+4+1 = 269310 Hexadecimal Numbers Hex-to-Dec Conversion Multiply the decimal values of each hex digits by its weight and then take the sum of these products. ex: Convert the following hex numbers to decimal: (a) E5h E5h = (Ex16)+(5x1) = (14x16)+5 = 224+5 = 22910 (b) B2F8h B2F8h = (Bx4096)+(2x256)+(Fx16)+(8x1) = (11x4096)+(2x256)+(15x16)+(8x1) = 45,056+512+240+8 = 45,81610 Hexadecimal Numbers Dec-to-Hex conversion Repeated division of a dec number by 16 ex: Convert the dec number 650 to hex LSD 650/16 = 40.625 0.625x16 = 10 = A 40/16 = 2.5 0.5x16 2/16 = 0.125 0.125x16 = 2 = 2 =8 =8 Hence 65010 = 28Ah MSD Stop when whole number quotient is ZERO. Octal Numbers Like the hex, the “oct” provides a convenient way to express binary numbers and codes. (btw, it’s not as commonly used as hex). 8 digits: 0-7 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,… Operations we learn about hex so far work the same way on oct just mark this: Hex = 4 binary bits Oct = 3 binary bits Now, let’s crack the following exercises… Octal Numbers Bin-to-Oct Conversion (a) 110101 (c) 100110011010 (b) 101111001 (d) 11010000100 Oct-to-Bin Conversion (a) 138 (b) 258 (c) 1408 (d) 75268 Oct-to-Dec Conversion (a) 23748 Dec-to-Oct Conversion (a) 35910