Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
HEXADECIMAL NUMBERS Code Introduction to Microprocessors Number Systems and Conversions WRITING one’s and zero’s can be error prone when dealing with large numbers. IBM came up with the following method of dealing with these numbers. BASE 16 with digits 0 - 15 in base 10 are represented by the following notation in Hexadecimal. 016 = 00002 = 010 116 = 00012 = 110 216 = 00102 = 210 316 = 00112 = 310 416 = 01002 = 410 516 = 01012 = 510 616 = 01102 = 610 716 = 01112 = 710 816 = 10002 = 810 916 = 10012 = 910 A16 = 10102 = 1010 B16 = 10112 = 1110 C16 = 11002 = 1210 D16 = 11012 = 1310 E16 = 11102 = 1410 F16 = 11112 = 1510 No. 1-1 9/6/00 Base 16 Conversion EXAMPLE Introduction to Microprocessors Number Systems and Conversions Convert A716 to binary Note: This is easy because of the relationship between the two bases A = 1010 7 = 0111 Therefore 0A7H or $A7 = 10100111 Note leading 0 before A. Since this is a number a different base than base 10, absence of the zero may confuse a compiler. Therefore it is customary to add the leading 0 to any hex character that begins with a letter of the alphabet (A,B,C,D,E,F) !! These are NUMBERS in base 16 !! No. 1-2 9/6/00 HEXADECIMAL TO DECIMAL Introduction to Microprocessors Number Systems and Conversions • Similar Rules as to those in binary to decimal – Convert to binary then weighted multiplication -OR– Leave in HEX and use HEX multiplication • EXAMPLE (repeated multiplication) $F8E6H = F(16)3 + 8 (16)2 + E(16)1 + 6(16)0 = 15(16)3 + 8 (16)2 + 14(16)1 + 6(16)0 = 61,440 + 2048 + 224 +6 = 63,718 No. 1-3 9/6/00 DECIMAL TO HEXADECIMAL Introduction to Microprocessors Number Systems and Conversions • Similar Rules as to those in decimal to binary Repeated HEX division • EXAMPLE (repeated division) • Divisors are for 16 binary digits (4 HEX) 247910 = 2479/16 = 154 remainder 15 or F 154/16 = 9 remainder 10 or A 9/16 remainder 9 or 9 = 9 Answer = 9AFH No. 1-4 9/6/00 DECIMAL TO HEXADECIMAL ALTERNATE Introduction to Microprocessors Number Systems and Conversions • Same EXAMPLE (but weighted division) • Divisors are for 16 binary digits (4 HEX) 4096, 256, 16, 1 247910 = 2479/256 = 9 remainder .68359375 x256 = 175/16 = 10 or A remainder .9375 x 16 = 15/1 = 15 or F Answer = 9AFH No. 1-5 9/6/00 BINARY CODES BCD DECIMAL 8421 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 0001 0001 11 0001 0010 .... 98 1001 1000 99 1001 1001 4 Bit BCD CODES BINARY 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100010 1100011 7421 0000 0001 0010 0011 0100 0101 0110 1000 1001 1010 Introduction to Microprocessors Number Systems and Conversions 6311 5421 0000 0000 0001 0001 0011 0010 0100 0011 0101 0100 0111 1000 1000 1001 1001 1010 1011 1011 1100 1100 5311 0000 0000 0011 0100 0101 1000 1001 1011 1100 1101 5211 0000 0001 0011 0101 0111 1000 1001 1011 1101 1111 No. 1-6 9/6/00 MORE 4-BIT BCD CODES Decimal 0 1 2 3 4 5 6 7 8 9 4221 0000 0001 0010 0011 1000 0111 1100 1101 1110 1111 Introduction to Microprocessors Number Systems and Conversions 3321 2421 84/2/1 74/2/1 0000 0000 0000 0000 0001 0001 0111 0111 0010 0010 0110 0110 0011 0011 0101 0101 0101 0100 0100 0100 1010 1011 1011 1010 1100 1100 1010 1001 1101 1101 1001 1000 1110 1110 1000 1111 1111 1111 1111 1110 The / is subtract weight No. 1-7 9/6/00 5-BIT CODES Decimal 2-out of-5 0 00011 00000 1 00101 00001 2 00110 3 01001 4 01010 10000 5 01100 10000 11110 01000 7 10010 8 10100 Introduction to Microprocessors Number Systems and Conversions 63210 Shift-Counter 86421 51111 00110 00000 00000 00011 00001 00001 00101 01001 01010 00011 00111 01111 00010 00011 00011 00111 00100 01100 6 11000 10010 10100 11111 10001 11100 11000 00101 10001 01001 11100 1-8 9/6/00 10000 No. 11110 OTHER CODES Introduction to Microprocessors Number Systems and Conversions • Alphanumeric Codes – ASCII CODE – EBCDIC CODE – UNICODE 7 BITS 8 BITS 16 Bits No. 1-9 9/6/00 ASCII CODE Part 1 b3b2 b1b Introduction to Microprocessors Number Systems and Conversions Row (hex) 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 0 1 2 3 4 5 6 7 8 9 A B C D E F NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US SP ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ / ] ^ _ ` a b c d e f g h I j k l m n o p q r s t u v w x y z { | } ~ DEL 0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ? No. 1-10 9/6/00 ASCII CODE CONTROL CODES NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI SP Null Start of heading Start of text End of text End of transmission Enquiry Acknowledge Bell Backspace Horizontal tab Line feed Vertical tab Form feed Carriage return Shift out Shift in Space Introduction to Microprocessors Number Systems and Conversions DLE DC1 DC2 DC3 DC4 NAK SYN ETC CAN EM SUB ESC FS GS RS US DEL Data link escape Device control 1 Device control 2 Device control 3 Device control 4 Negative acknowledge Synchronize End transmitted block Cancel End of medium Substitute Escape File separator Group separator Record separator Unit separator Delete or rubout No. 1-11 9/6/00 EBCDIC Part I Least Significant Digit Introduction to Microprocessors Number Systems and Conversions Most Significant Hexadecimal Digit 1 2 0 0 Null Data link escape Digit select 1 Start of heading Device control 1 Start of significance 2 Start of text Device control 2 Field separator 3 4 5 End of text Punch off Horizontal tab Tape mark Restore New line 6 Lowercase Backspace 7 Delete Idle RLF Cancel End of medium 8 9 A Start of manual message B Vertical tab C Form feed D Carriage return E Shift out F Shift in 4 5 Spac & e 6 7 / Synchronization character Bypass PN Line feed Record separator End of Uppercase transmission block End of Escape transmission \ Cursor control Set mode Customer use 1 Interchange file separator Interchange group separator Interchange record separator Customer use 2 Interchange unit separator 3 Enquiry Customer use 3 cen t ! sig n . $ Device control 4 < * % @ Negative acknowledgment ( ) _ ' + ; > = Acknowledge Bell Start of special sequence ] | : , # | or ? " No.[ 1-12 or9/6/00 ] EBCDIC PART II Introduction to Microprocessors Number Systems and Conversions Least Significant Digit 0 1 2 3 4 5 6 7 8 9 A B C D E F Most Significant Hexadecimal Digit 8 a b c d e f g h i 9 j k l m n o p q r A s t u v w x y z B C { A B C D E F G H I D } J K L M N O P Q R E ` S T U V W X Y Z F 0 1 2 3 4 5 6 7 8 9 No. 1-13 9/6/00 UNICODE Introduction to Microprocessors Number Systems and Conversions 16 BIT CODE First Page 0000H - 00FFH Same as ASCII Has not been standardized the remaining 0FFFFH minus 00FFH available for all remaining countries and languages! No. 1-14 9/6/00 Number Systems Introduction to Microprocessors Number Systems and Conversions Representation of Negative Numbers Three major schemes: sign and magnitude ones complement twos complement nines complement tens complement Assumptions: we'll assume a 4 bit machine word 16 different values can be represented roughly half are positive, half are negative No. 1-15 9/6/00 Number Systems Sign and Magnitude Representation -7 -6 -5 1111 1110 Introduction to Microprocessors Number Systems and Conversions +0 +1 0000 0001 1101 0010 +2 + -4 1100 0011 +3 0 100 = + 4 -3 1011 0100 +4 1 100 = - 4 -2 1010 0101 1001 -1 +5 - 0110 1000 -0 0111 +6 +7 High order bit is sign: 0 = positive (or zero), 1 = negative Three low order bits is the magnitude: 0 (000) thru 7 (111) n-1 Number range for n bits = +/-2 -1 Representations for 0 Two +/No. 1-16 9/6/00 Number Systems Introduction to Microprocessors Number Systems and Conversions Ones Complement -0 -1 -2 1111 1110 +0 +1 0000 0001 1101 0010 +2 + -3 1100 0011 +3 0 100 = + 4 -4 1011 0100 +4 1 011 = - 4 -5 1010 0101 1001 -6 +5 - 0110 1000 -7 0111 +6 +7 Subtraction implemented by addition & 1's complement Still two representations of 0! This causes some problems Some complexities in addition No. 1-17 9/6/00 Number Representations Introduction to Microprocessors Number Systems and Conversions Twos Complement -1 -2 -3 like 1's comp except shifted one position clockwise 1111 1110 +0 +1 0000 0001 1101 0010 +2 + -4 1100 0011 +3 0 100 = + 4 -5 1011 0100 +4 1 100 = - 4 -6 1010 0101 1001 -7 +5 - 0110 1000 -8 0111 +6 +7 Only one representation for 0 One more negative number than positive number No. 1-18 9/6/00 BINARY ARITHMETIC Introduction to Microprocessors Number Systems and Conversions RULES FOR ADDITION 0+0=0 0+1=1 1+0=1 1 + 1 = 0 + carry 1 to next column RULES FOR SUBTRACTION 0-0=0 0 - 1 = 1 and borrow from next column 1-0=1 1-1=0 Borrowing 1 from next column is equivalent to subtracting 1 from that column No. 1-19 9/6/00 Addition Introduction to Microprocessors Number Systems and Conversions EXAMPLE ADD 1010 to 1101 + 1010 1101 10111 SUBTRACT 1010 from 1101 - 1101 1010 0011 borrow 4 subtract 2 nothing in 4 position No. 1-20 9/6/00 Number Representations Introduction to Microprocessors Number Systems and Conversions Addition and Subtraction of Numbers Sign and Magnitude 4 0100 When signs is same, result sign bit is the +3 same as the operands' sign. Just add magnitudes 7 -4 1100 0011 + (-3) 1011 0111 -7 1111 4 0100 -4 1100 -3 1011 +3 0011 1 0001 -1 1001 When signs differ, operation is subtract, sign of result depends on sign of number with the larger magnitude. This is what we do in base 10. No. 1-21 9/6/00 Number Systems Introduction to Microprocessors Number Systems and Conversions Sign and Magnitude Cumbersome addition/subtraction. Must compare magnitudes to determine the sign of result. No. 1-22 9/6/00 Ones Complement Introduction to Microprocessors Number Systems and Conversions The symbol N, with a bar over it, is used to represent the complement. Also used to indicate inversion are /, ‘, or ! (CUPL and ABEL) N is positive number, then N is its negative 1's complement. N is the precision, as many 1’s as required. Binary can be any precision, but BCD requires 4 bits. Precision 4 bits Therefore, The general formula for finding /N = (2n - 1) - N 2 4 = 10000 -1 = 00001 To find 1's complement of 7 1111 -7 = 0111 1000 = -7 in 1's comp. No. 1-23 9/6/00 Ones Complement ZERO Applying the general formula /N = (2n - 1) - N Introduction to Microprocessors Number Systems and Conversions 2 4 = 10000 -1 = 00001 To find 1's complement of 0 1111 -0 = 0000 1111 = -0 in 1's comp. NOTE: The complement of 0 is 1111, which means, there are 2 representations of 0. 0000 Positive 0 1111 Negative 0 No. 1-24 9/6/00 SHORTCUT 1’s Complement Introduction to Microprocessors Number Systems and Conversions Shortcut method: Replace all 0’s with 1’s, and all 1’s with 0’s simply compute bit wise complement 7 in 1’s complement 0111 -> 1000 No. 1-25 9/6/00 Number Systems Introduction to Microprocessors Number Systems and Conversions Addition and Subtraction of Numbers Ones Complement Calculations 4 0100 -4 1011 +3 0011 + (-3) 1100 7 0111 -7 10111 End around carry 1 1000 4 0100 -4 1011 -3 1100 +3 0011 1 10000 -1 1110 End around carry 1 0001 No. 1-26 9/6/00 Number Systems Addition and Subtraction of Binary Numbers Ones Complement Calculations Introduction to Microprocessors Number Systems and Conversions Why does end-around carry work? n Its equivalent to subtracting 2 and adding 1 For (M > N) M - N = M + / N = M + (2n - N -1) = (M - N) + 2n - 1 For M + N < 2n-1 -M + (-N) = M + N = (2n - M - 1) + (2n - N - 1) = 2n + [2n - 1 - (M + N)] - 1 after end around carry the -1 is canceled if a carry, else not: = 2n - 1 - (M + N) this is the correct form for representing -(M + N) in 1's complement! No. 1-27 9/6/00 Number Systems Two’s Complement Numbers Introduction to Microprocessors Number Systems and Conversions /N = 2n - N 4 Note: subtract number immediately. Example: Twos complement of 7 2 = 10000 sub 7 = 0111 1001 = represents -7 Example: Twos complement of 0 Only 4bits can represent number. The most significant 1 is dropped! 4 2 = 10000 sub -0 = 0000 0000 = 0 Shortcut method Number 1: Twos complement =1’s complement + 1 0111 -> 1000 + 1 -> 1001 (representation of -7) 1001 -> 0110 + 1 -> 0111 (representation of 7) No. 1-28 9/6/00 SHORTCUT Introduction to Microprocessors Number Systems and Conversions Shortcut method Number 2: Starting from the right, least significant bit, if 0 leave unchanged. Continue from right to left, if 0, no change. When the first 1 is encountered, we leave it unchanged, but complement each digit to the left. 710 = 01112 Apply method 10012 = -710 . 6810 = 011001002 yields 100111002 . The lead 0 is important so that the number to be converted is positive! In base 10, the - sign does that for us. With only on and off (0,1) we need this extra bit of information to describe the signed number. -6810 = 10011100 yields 011001002 = + 6810 No. 1-29 9/6/00 Number Systems Addition and Subtraction of Binary Numbers Twos Complement Calculations Introduction to Microprocessors Number Systems and Conversions 4 0100 -4 1100 +3 0011 + (-3) 1101 7 0111 -7 11001 4 0100 -4 1100 -3 1101 +3 0011 1 10001 -1 1111 Simpler addition scheme makes twos complement the most common choice for integer number systems within digital systems No. 1-30 9/6/00 Number Systems Addition and Subtraction of Binary Numbers Twos Complement Calculations Introduction to Microprocessors Number Systems and Conversions Why can the carry-out be ignored? -M + N when N > M: n n M* + N = (2 - M) + N = 2 + (N - M) Ignoring carry-out is just like subtracting 2 n -M + -N where N + M < or = 2 n-1 n n -M + (-N) = M* + N* = (2 - M) + (2 - N) n n = 2 - (M + N) + 2 After ignoring the carry, this is just the right twos compl. representation for -(M + N)! No. 1-31 9/6/00 Number Systems Introduction to Microprocessors Number Systems and Conversions Overflow Conditions Add two positive numbers to get a negative number or two negative numbers to get a positive number -1 -2 1111 0001 1101 -4 0010 1100 -5 0100 1010 0101 1001 -7 0110 1000 -8 0111 +7 +3=-8 (error) 4 bit representation 3 bits + sign in msb range -8 to +7 -3 +2 0011 1011 -6 -2 +1 0000 1110 -3 -1 +0 +3 -4 1111 1110 1101 +2=7 (ok) 0010 1010 -6 0110 1000 -8 +2 0011 +3 0100 +4 0101 1001 -7 +1=6 (ok) 0001 1011 +4 +6 +1 0000 1100 -5 +5 +0 0111 +5 +6 +7 -7 - 2 = +7 5 0101 +3 0011 -8 1000 No. 1-32 9/6/00 OVERFLOW Introduction to Microprocessors Number Systems and Conversions If carry-in (penultimate) is added to sign bit and there is a carry-out then no overflow. if carry-in differs from carry-out then overflow This is true for both 1’s and 2’s complement addition. No. 1-33 9/6/00 Number Systems Overflow Conditions Example is using 2’s Complement 0 1 1 1 carry 5 0101 3 0011 -8 1000 Overflow Introduction to Microprocessors Number Systems and Conversions -7 1 0 0 0 carry 1001 -2 1110 7 10111 Overflow Note: the carry and penultimate carry are not the same! This can be very easily implemented in hardware. XOR 5 0 0 0 0 carry 0101 -3 1 1 1 1 carry 1101 2 0010 -5 1011 7 0111 -8 11000 No overflow No overflow Overflow when carry in to sign does not equal carry out No. 1-34 9/6/00 BCD Addition Introduction to Microprocessors Number Systems and Conversions BCD Number Representation Decimal digits 0 thru 9 represented as 0000 thru 1001 in binary Addition: 5 = 0101 3 = 0011 1000 = 8 5 = 0101 8 = 1000 Problem when digit sum exceeds 9 1101 = 13! Solution: add 6 (0110) if sum exceeds 9. 5 = 0101 9 = 1001 8 = 1000 7 = 0111 1101 6 = 0110 1 0011 = 1 3 in BCD 1 0000 = 16 in binary 6 = 0110 1 0110 = 1 6 in BCD No. 1-35 9/6/00 BCD Subtractin Introduction to Microprocessors Number Systems and Conversions Must use 10’s complement To find 10’s complement, first generate 9’s complement by subtracting The number from 9. If n = 9, If n = 8, If n = 7, If n = 6, If n = 5, If n = 4, If n = 3, If n = 2, If n = 1, If n = 0, 9-9 =0 9-8 =1 9-7 =2 9-6 =3 9-5 =4 9-4 =5 9-3 =6 9-2 =7 9-1 =8 9-0 =9 9’s complement of 9 is 0 or 0000 9’s complement of 8 is 1 or 0001 9’s complement of 7 is 2 or 0010 9’s complement of 6 is 3 or 0011 9’s complement of 5 is 4 or 0100 9’s complement of 4 is 5 or 0101 9’s complement of 3 is 6 or 0110 9’s complement of 2 is 7 or 0111 9’s complement of 1 is 8 or 1000 9’s complement of 0 is 9 or 1001 Add 1 to 9’s complement to find 10’s complement. No. 1-36 9/6/00 Example of BCD Subtract Introduction to Microprocessors Number Systems and Conversions To subtract 2 from 5, find 10’s complement of 2 which is 10002 4 Bit Representation. 5 -2 5 8 3 13 0101 1000 1 1101 The 1 carry, is normal form and indicates answer is 3. In binary, 1001 is exceeded! Must add 6 to correct. Known as BCD adjust. 0110 0011 The 1 carry is normal form answer is 3 base 10. No. 1-37 9/6/00 Addition Examples 4 BITS signed and unsigned Introduction to Microprocessors Number Systems and Conversions Decimal Binary Unsigned 1’s Complement 2’s Complement 9’s Complement 10’s Complement 9’s Complement Binary Coded Decimal 10’s Complement Binary Coded Decimal No Sign No Sign 4 Bit Signed No Overflow 4 Bit Signed No Overflow Base10 Signed No Overflow Base10 Signed No Overflow Base2 Signed No Overflow 4 Bit BCD Base2 Signed No Overflow 4 Bit BCD 0001 0011 0001 0011 1 +3 0001 0011 0 01 0001 0011 0 1 4 0 12 111 1100 0 0100 0100 4 Bit No Sign No Overflow 5 0101 +7 0111 011 0001 0011 4 Bit Signed Overflow 0 111 4 Bit Signed Overflow 1100 0101 0111 0 1 +3 011 0100 0101 0111 1 +3 0 4 Base10 Signed Overflow 05 +07 4 Base10 Signed Overflow 5 +7 111 1100 12 0 011 0100 Base2 9’s Base2 10’s Signed Signed Overflow Overflow 4 Bit BCD 4 Bit BCD 0101 0101 0111 0111 0 12 011 0100 111 1100 0 111 1100 No. 1-38 9/6/00 Addition Examples 4 BITS signed and unsigned Decimal Binary Unsigned 1’s Complement No Sign No Sign 4 Bit Signed No Overflow 7 -2 1 1 1 0111 1110 1 1101 0 1101 (-2) 0010 1 1 1 0101 4 Bit Signed No Overflow 0101 1000 0 0 0 0 -2 4 Bit Signed No Overflow 0100 1 0101 4 Bit Signed No Overflow 5 -7 2’s Complement 0111 1101 1 5 Introduction to Microprocessors Number Systems and Conversions 0101 1001 0 9’s Complement 10’s Complement 9’s Complement Binary Coded Decimal 10’s Complement Binary Coded Decimal Base10 Signed No Overflow Base10 Signed No Overflow Base2 Signed No Overflow 4 Bit BCD Base2 Signed No Overflow 4 Bit BCD 0111 1101 0111 1110 7 97 1 1 7 98 1 1 04 1 05 Base10 Signed No Overflow 05 92 05 Base10 Signed No Overflow 5 93 0 0 1 1 1 1 1 97 98 0001 1 (-2) 0010 -2 01 1 (-2) 02 1 1 1 0101 Base2 9’s Signed No Overflow 4 Bit BCD 0101 1000 Base2 10’s Signed No Overflow 4 Bit BCD 0101 1001 0 0 0 0 1110 1 0100 1 0101 1101 0 1101 (-2) 0010 0 0 0 1 1110 0001 1 (-2) 0010 No. 1-39 9/6/00 Excess 3 Code Introduction to Microprocessors Number Systems and Conversions Excess-3 code is another important BCD Code. To encode a decimal number, add 3 to each digit before converting to binary. EXAMPLE (Note: 2 digits represented by 2 4 bit numbers) 12 to excess-3 = 1+3=4 2+3=5 4 5 0100 0101 29 to excess-3 = 2+3=5 9+3=12 5 12 0101 1100 No. 1-40 9/6/00 EXAMPLES OF EXCESS ADDITION Introduction to Microprocessors Number Systems and Conversions CASE 1 In excess-3 addition, whenever we add two numbers whose sum is 9 or less, an excess-6 number is formed. To return to excess-3 we must subtract 3. EXAMPLE 2 +5 = 7 0101 2 1000 5 1101 excess-6 - 0011 1010 excess-3 equivalent of 7 No. 1-41 9/6/00 EXAMPLES OF EXCESS ADDITION CASE 2 Introduction to Microprocessors Number Systems and Conversions In excess-3 addition, whenever we add two numbers whose sum is greater than 9, there will be a carry from one group to the next. When this happens, the group that produced the carry will revert to 8421 (BCD). To return to excess-3 we must subtract 3 from that group. EXAMPLE 0 1 carry not carried to 10’s because of sum 29 0101 1100 excess-3 for 29 + 39 0110 1100 excess-3 for 39 68 1100 1000 first result - 0011 + 0011 subtract less than 9, add 3 1001 1011 excess-3 for 68 No. 1-42 9/6/00