ECE 331 – Digital System Design Number Systems, Conversion between Bases, and Basic Binary Arithmetic (Lecture #9) ECE 331 - Digital System Design * 52 What does this number represent? What does it mean? ECE 331 - Digital System Design ECE 331 - Digital System Design * 1011001.101 What does this number represent? Consider the base (or radix) of the number. ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems R is the radix or base of the number system Must be a positive number R digits in the number system: [0 .. R-1] Important number systems for digital systems: Base 2 (binary): [0, 1] Base 8 (octal): [0 .. 7] Base 16 (hexadecimal): [0 .. 9, A, B, C, D, E, F] ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems Positional Notation D = [a4a3a2a1a0.a-1a-2a-3]R D = decimal value a i = ith position in the number R = radix or base of the number ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems Power Series Expansion D = an x R4 + an-1 x R3 + … + a0 x R0 + a-1 x R-1 + a-2 x R-2 + … a-m x R-m D = decimal value a i = ith position in the number R = radix or base of the number ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems ECE 331 - Digital System Design ECE 331 - Digital System Design * Conversion between Number Systems ECE 331 - Digital System Design ECE 331 - Digital System Design * Conversion of Decimal Integer Use repeated division to convert to any base N = 57 (decimal) Convert to binary (R = 2) and octal (R = 8) 57 / 2 = 28: rem = 1 = a0 28 / 2 = 14: rem = 0 = a1 14 / 2 = 7: rem = 0 = a2 7 / 2 = 3: rem = 1 = a3 3 / 2 = 1: rem = 1 = a4 1 / 2 = 0: rem = 1 = a5 5710 = 1110012 57 / 8 = 7: rem = 1 = a0 7 / 8 = 0: rem = 7 = a1 5710 = 718 User power series expansion to confirm results. ECE 331 - Digital System Design ECE 331 - Digital System Design * Conversion of Decimal Fraction Use repeated multiplication to convert to any base N = 0.625 (decimal) Convert to binary (R = 2) and octal (R = 8) 0.625 * 2 = 1.250: a-1 = 1 0.250 * 2 = 0.500: a-2 = 0 0.500 * 2 = 1.000: a-3 = 1 0.62510 = 0.1012 0.625 * 8 = 5.000: a-1 = 5 0.62510 = 0.58 Use power series expansion to confirm results. ECE 331 - Digital System Design ECE 331 - Digital System Design * Conversion of Decimal Fraction In some cases, conversion results in a repeating fraction Convert 0.710 to binary 0.7 * 2 = 1.4: a-1 = 1 0.4 * 2 = 0.8: a-2 = 0 0.8 * 2 = 1.6: a-3 = 1 0.6 * 2 = 1.2: a-4 = 1 0.2 * 2 = 0.4: a-5 = 0 0.4 * 2 = 0.8: a-6 = 0 0.710 = 0.1 0110 0110 0110 ...2 ECE 331 - Digital System Design ECE 331 - Digital System Design * Number System Conversion Conversion of a mixed decimal number is implemented as follows: Convert the integer part of the number using repeated division. Convert the fractional part of the decimal number using repeated multiplication. Combine the integer and fractional components in the new base. ECE 331 - Digital System Design ECE 331 - Digital System Design * Number System Conversion Example: Convert 48.562510 to binary. Confirm the results using the Power Series Expansion. ECE 331 - Digital System Design ECE 331 - Digital System Design * Number System Conversion Conversion between any two bases, A and B, can be carried out directly using repeated division and repeated multiplication. Base A → Base B However, it is generally easier to convert base A to its decimal equivalent and then convert the decimal value to base B. Base A → Decimal → Base B Power Series Expansion Repeated Division, Repeated Multiplication ECE 331 - Digital System Design ECE 331 - Digital System Design * Number System Conversion Conversion between binary and octal can be carried out by inspection. Each octal digit corresponds to 3 bits 101 110 010 . 011 0012 = 5 6 2 . 3 18 010 011 100 . 101 0012 = 2 3 4 . 5 18 7 4 5 . 3 28 = 111 100 101 . 011 0102 3 0 6 . 0 58 = 011 000 110 . 000 1012 Is the number 392.248 a valid octal number? ECE 331 - Digital System Design ECE 331 - Digital System Design * Number System Conversion Conversion between binary and hexadecimal can be carried out by inspection. Each hexadecimal digit corresponds to 4 bits 1001 1010 0110 . 1011 01012 = 9 A 6 . B 516 1100 1011 1000 . 1110 01112 = C B 8 . E 716 E 9 4 . D 216 = 1110 1001 0100 . 1101 00102 1 C 7 . 8 F16 = 0001 1100 0111 . 1000 11112 Note that the hexadecimal number system requires additional characters to represent its 16 values. ECE 331 - Digital System Design ECE 331 - Digital System Design * Number Systems Base: 10 2 8 16 ECE 331 - Digital System Design ECE 331 - Digital System Design * Basic Binary Arithmetic ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Addition Basic Binary Arithmetic ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Addition 0 0 1 1 + 0 + 1 + 0 + 1 0 1 1 10 Sum Carry Sum ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Addition Examples: 01011011 + 01110010 00111100 + 10101010 10110101 + 01101100 ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Subtraction Basic Binary Arithmetic ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Subtraction 0 10 1 1 - 0 - 1 - 0 - 1 0 1 1 0 Difference Borrow ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Subtraction Examples: 01110101 - 00110010 00111100 - 10101100 10110001 - 01101100 ECE 331 - Digital System Design ECE 331 - Digital System Design * Basic Binary Arithmetic Single-bit Addition Single-bit Subtraction s 0 1 1 0 c 0 0 0 1 x y 0 0 1 1 0 1 0 1 Carry Sum d 0 1 1 0 x y 0 0 1 1 0 1 0 1 Difference What logic function is this? What logic function is this? ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Multiplication ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Multiplication 0 0 1 1 x 0 x 1 x 0 x 1 0 0 0 1 Product ECE 331 - Digital System Design ECE 331 - Digital System Design * Binary Multiplication Examples: 00111100 x 10101100 10110001 x 01101101 ECE 331 - Digital System Design