ECE 331 – Digital System Design Number Systems and Conversion, Binary Arithmetic, and Representation of Negative Numbers (Lecture #9) The slides included herein were taken from the materials accompanying Fundamentals of Logic Design, 6th Edition, by Roth and Kinney, and were used with permission from Cengage Learning.
ECE 331 - Digital System Design 52 What does this number represent? Consider the “context” within which the number is used. Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1011001.101 What is the value of this number? Consider the base (or radix) of the number. Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Fall 2010 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] Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Positional Notation N = [a4a3a2a1a0.a-1a-2a-3]R N = numeric value ai = ith position in the number R = radix or base of the number Fall 2010 ECE 331 - Digital System Design
+ a-1 x R-1 + a-2 x R-2 + … a-m x R-m 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 ai = ith position in the number R = radix or base of the number Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Examples: Decimal 953.7810 = 9x102 + 5x101 + 3x100 + 7x10-1 + 8x10-2 Binary 1011.112 = 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2 = 8 + 0 + 2 + 1 + 1/2 + 1/4 = 11.7510 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Examples: Octal 347.218 = 3x82 + 4x81 + 7x80 + 2x8-1 + 1x8-2 = ? Hexadecimal E61A.D716 = 14x163 + 6x162 + 1x161 + 10x160 + 13x16-1 + 7x16-2 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Conversion Fall 2010 ECE 331 - Digital System Design
Conversion of a Decimal Integer Use repeated division to convert a decimal integer to any other base. Fall 2010 ECE 331 - Digital System Design
Conversion of a Decimal Integer Example: Convert the decimal number 57 to a binary (R=2) number and an octal (R=8) number. 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 Fall 2010 ECE 331 - Digital System Design
Conversion of a Decimal Fraction Use repeated multiplication to convert a decimal fraction to any other base. Fall 2010 ECE 331 - Digital System Design
Conversion of a Decimal Fraction Example: Convert the decimal number 0.625 to a binary (R=2) number and an octal (R=8) number. 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: a0 = 5 0.62510 = 0.58 Fall 2010 ECE 331 - Digital System Design
Conversion of a Decimal Fraction Example: Convert the decimal number 0.7 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 In some cases, conversion results in a repeating fraction. process begins repeating here! Fall 2010 ECE 331 - Digital System Design
Conversion of a Mixed Decimal Number 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. Fall 2010 ECE 331 - Digital System Design
Conversion of a Mixed Decimal Number Exercise: Convert 48.562510 to binary. Confirm the results using the Power Series Expansion. Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design 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 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design 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? Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design 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. Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Number Systems Base: 10 2 8 16 What is the value of 12? Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Arithmetic Fall 2010 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 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Addition Examples: 01011011 + 01110010 10110101 + 01101100 00111100 + 10101010 Fall 2010 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 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Subtraction Examples: 01110101 - 00110010 10110001 - 01101100 00111100 - 10101100 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Arithmetic Single-bit Addition Single-bit Subtraction s 1 c x y Carry Sum d 1 x y Difference What logic function is this? What logic function is this? Fall 2010 ECE 331 - Digital System Design
Binary Multiplication 0 0 1 1 x 0 x 1 x 0 x 1 0 0 0 1 Product Fall 2010 ECE 331 - Digital System Design
Binary Multiplication Examples: 1011 x 0110 1001 x 1101 0110 x 1010 Fall 2010 ECE 331 - Digital System Design
Binary Multiplication When doing binary multiplication, a common way to avoid carries greater than 1 is to add in the partial products one at a time as illustrated by the following example: 1111 multiplicand 1101 multiplier 1111 1st partial product 00000 2nd partial product (01111) sum of first two partial products 111100 3rd partial product (1001011) sum after adding 3rd partial product (pp) 1111000 4th partial product 11000011 final product (sum after adding 4th pp) Fall 2010 ECE 331 - Digital System Design
Representation of Negative Numbers Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design 10011010 What is the value of this number? Is it positive or negative? If negative, what representation are we using? Fall 2010 ECE 331 - Digital System Design
Unsigned and Signed Binary Numbers 1 – Magnitude MSB (a) Unsigned number Sign (b) Signed number 2 0 denotes 1 denotes + Fall 2010
Unsigned Binary Numbers For an n-bit unsigned binary number, all n bits are used to represent the magnitude of the number. ** Cannot represent negative numbers. Fall 2010 ECE 331 - Digital System Design
Unsigned Binary Numbers For an n-bit binary number 0 <= D <= 2n – 1 where D = decimal equivalent value For an 8-bit binary number: 0 <= D <= 28 – 1 28 = 256 For a 16-bit binary number: 0 <= D <= 216 – 1 216 = 65536 Fall 2010 ECE 331 - Digital System Design
Signed Binary Numbers For an n-bit signed binary number, n-1 bits are used to represent the magnitude of the number; the leftmost bit (MSB) is, generally, used to indicate the sign of the number. 0 = positive number 1 = negative number Fall 2010 ECE 331 - Digital System Design
Signed Binary Numbers Three representations for signed binary numbers: 1. Sign and Magnitude 2. 1's Complement 3. 2's Complement Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Sign and Magnitude For an n-bit signed binary number, The MSB (leftmost bit) is the sign bit. The remaining n-1 bits represent the magnitude. - (2n-1 - 1) <= D <= + (2n-1 – 1) Includes a representation for -0 and +0. The design of arithmetic circuits for Sign and Magnitude binary numbers is difficult. Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Sign and Magnitude Example: What is the Sign and Magnitude representation for the following decimal values, using 8 bits: + 97 - 68 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Sign and Magnitude Example: Can the following decimal numbers be represented using 8-bit Sign and Magnitude representation? - 212 - 127 +128 +255 Fall 2010 ECE 331 - Digital System Design
ECE 331 - Digital System Design Questions? Fall 2010 ECE 331 - Digital System Design