Digital Design: From Gates to Intelligent Machines Bruce F Katz Da Vinci Engineering Press Number Systems Numbers and Numerals A number is a quantity A numeral is a representation of a number Example (all representations of the quantity 5) 5, V (Roman), 101 (binary), (Babylonian) Not equivalent in ease of computation, however Number Systems Positional Number Systems A quantity is a weighted sum of powers of a base b anb n an1b n1 an2b n2 ... a0b0 a1b 1 ... am1b m1 amb m Compactness of representation and ease of computation Additional characteristics digits to the left of radix point are integral digits to the right of the radix point are fractional Number Systems Examples of Positional Number Systems base 10 102410 = 1*103 + 0*102 + 2*101 + 4*100 base 8 417.238= 4*82 + 1*81 + 7*80 + 2*8-1 + 3*8-2 = 256 + 8 + 7 + 2/8 + 3/64 base 2 1010.1 = 1*23 + 1*21 + 1*2-1 = 10.510 Number Systems Commonly used bases decimal (base 10) binary (base 2) octal (base 8) hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 Number Systems Which base is best for human use? 6 5 4 # of divisors 3 2 1 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 base Base 12 has the most divisors among the small numbers but we usually use base 10. Why? Number Systems Conversion between bases (special case) Principle If one base is an integer power of another base, can group by this integer to perform conversion. Examples 1011112 = ?8 solution: group by 3 bits F416 = ?2 {101}{111}2 = 578 solution: each hex digit represents 4 bits F416 = {1111}{0100}2 = 111101002 Number Systems Conversion to and from base 10 To base 10 Use definition of a positional number Example: 1101.1012 to base 10 1101.1012 = 1*23 + 1*22 + 0*21 + 1*21 + 1*2-1 + 0*2-2 + 1*2-3 = 13.625 From base 10 Use reformulation of definition of a positional number [((an b an 1 )b an2 )b ...a1 ]b a0 . Successive divisions by the base will yield then digits as remainders Example: 125 to base 3 125/3 = 41 remainder 2 41/3 = 13 remainder 2 13/3 = 4 remainder 1 4/3 = 1 remainder 1 1/3 = 0 remainder 1 therefore answer is 111223 Number Systems Binary Number Systems Motivation Correspondence between 0 and 1 and logical values (true and false) Ease of constructing binary circuits Powers of 2 n 4 8 10 16 20 30 40 2n 16 256 1,024 65,536 1,048,576 1,073,741,824 1.099E12 significance one nibble (1/2 a byte) one byte; one ASCII char quantity abbreviated by 1K (kilo) two bytes; one UNICODE char quantity abbreviated by 1M (mega) quantity abbreviated by 1G (giga) quantity abbreviated by 1T (tera) Number Systems Binary Addition and Subtraction Addition Same as decimal addition with binary carries 00110010 10011101 01011001 ----------------------11110110 carry addend1 addend2 sum Subtraction Same as decimal subtraction with binary borrows 01000110 11011100 01101001 ----------------------01110011 borrow minuend subtrahend difference Number Systems Binary Addition and Subtraction Tables addition subtraction addend 1 addend 2 carry in sum carry out minuend subtrahend borrow in difference borrow out 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 Important: These tables are the foundation for computer arithmetic! Number Systems Binary Multiplication Easier than decimal multiplication because always multiplying by 0 or 1 Example 0110 * 1011 ---------0110 0110 0000 0110 ------------------1000010 Number Systems Representing Negative Numbers System 1: Signed Magnitude Leftmost bit represents negative sign Examples 01010111 = 87 11010111 = - 87 Advantage Simplicity Disadvantage Mathematical operations clumsy, e.g. addition: if (signs same)then { add magnitudes give result this sign } else /* signs different */ { compare magnitudes subtract smaller from larger give result sign of the larger } Number Systems Representing Negative Numbers System 2: 2’s complement Positive numbers identical, negative numbers 2n - positive version, where n is the number of bits in the representation Examples 00010001 = 17 100000000 - 00010001 = 11101111 = - 17 Trick for computing negative number Flip all the bits and add 1 00010001 11101110 11101111 after flip after adding 1 Note: Negative numbers will always begin with 1, positive with 0 Number Systems Representing Negative Numbers System 2: 2’s complement Addition method Just add! (and ignore any bits > 2n-1) 00101011 (43) +1 1 1 0 1 1 1 1 (-17) ------------------100011010 Overflow condition: If add 2 positive and get a negative or vice versa Example 10001111 (-113) +1 1 1 0 1 1 1 1 ------------------101111110 (-17) overflow! Number Systems Codes A way of representing a set of quantities or a set of symbols within a given base Example in base 2 decimal Binary 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 BCD 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 gray even parity 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 00000 10001 10010 00011 10100 00101 00110 10111 11000 01001 01010 11011 01100 11101 11110 01111 Number Systems Codes BCD Each decimal digit is encoded by four binary digits Motivation ease of conversion Examples 0001 0100 14 1001 0111 97 Gray Coding Each successive number differs by only 1 bit from previous Motivation counting with CMOS Karnaugh maps Number Systems Codes Parity An extra bit is added to make the string always even or odd Motivation error checking ASCII b6b5b4 b3b2b1b0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 011 100 101 110 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 111 p q r s t u v w x y z { | } ~ DEL Number Systems Codes Unicode 4 hex digits encode 216 characters Example Number Systems Summary of topics Numbers and numerals Positional number systems Conversion between bases Binary number systems Binary addition, subtraction, and multiplication Representation of negative numbers Codes