ECE 331 – Digital System Design Representation of Negative Numbers, Binary Arithmetic of Negative Numbers, and Binary Codes (Lecture #11) 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.
Representation of Negative Numbers (continued) Spring 2011 ECE 331 - Digital System Design
Signed Binary Numbers Representations for signed binary numbers: 1. Sign and Magnitude 2. 1's Complement 3. 2's Complement Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Signed Binary Numbers Arithmetic circuits are difficult to design for Sign and Magnitude binary numbers. Consequently, this number system is not typically used in digital (computer) systems. Instead other number systems, namely the 1's and 2's Complements, are more commonly used. As we will see, it is rather easy to design arithmetic circuits for binary numbers represented in these number systems. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement A positive number, N, is represented in the same way as in the Sign and Magnitude representation. For an n-bit number, The leftmost bit (sign bit) = 0. Indicating a positive number. The remaining n-1 bits represent the magnitude. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement A negative number, -N, is represented by the “1's complement” of the positive number, N. N' = 1's complement representation for -N. For an n-bit signed binary number, The leftmost bit (sign bit) = 1 for all negative numbers in the 1's Complement system. N' = (2n – 1) – N Spring 2011 ECE 331 - Digital System Design
1's Complement: Examples Using 8 bits, determine the 1's Complement representation for the following negative numbers: -15 -102 Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement The 1's Complement representation for -N can also be determined by taking the bit-wise complement of N. N' = 1's Complement representation for -N. For an n-bit signed binary number, i.e. complement N, bit-by-bit N' = bit-wise complement of N Spring 2011 ECE 331 - Digital System Design
1's Complement: Examples Using 8 bits, determine the 1's Complement representation for the following negative numbers: -15 -102 (Use the bit-wise complement) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement For an n-bit 1's Complement binary number, Includes a representation for +0 and -0. Represents an equal number of positive and negative values. - (2n-1 – 1) <= N <= + (2n-1 – 1) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement To determine the magnitude of a negative number, -N, that is represented by its 1's Complement, N', simply take the “1's complement” of the 1's Complement. N = (2n – 1) – N' 1's complement rep. for negative # or positive # N = bit-wise complement of N' Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement A positive number, N, is represented in the same way as in the Sign and Magnitude representation. For an n-bit number, The leftmost bit (sign bit) = 0. Indicating a positive number. The remaining n-1 bits represent the magnitude. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement A negative number, -N, is represented by the “2's complement” of the positive number, N. N* = 2's complement representation for -N. For an n-bit signed binary number, The leftmost bit (sign bit) = 1 for all negative numbers in the 2's Complement system. N* = (2n) – N Spring 2011 ECE 331 - Digital System Design
2's Complement: Examples Using 8 bits, determine the 2's Complement representation for the following negative numbers: -12 -95 Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement The 1's and 2's Complement representations for a negative number, -N, are related as follows: N* = (2n) – N N' = (2n - 1) – N N* = N' +1 Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement Thus, the 2's Complement representation for - N can also be determined by adding 1 to the 1's Complement representation for -N. N' = 1's Complement representation for -N. N* = 2's Complement representation for -N. For an n-bit signed binary number, N* = N' + 1 Spring 2011 ECE 331 - Digital System Design
2's Complement: Examples Using 8 bits, determine the 2's Complement representation for the following negative numbers: -12 -95 (Use the 1's complement) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement For an n-bit 2's Complement binary number, Includes only one representation for 0. Represents an additional negative value. - (2n-1) <= N <= + (2n-1 – 1) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement To determine the magnitude of a negative number, -N, that is represented by its 2's Complement, N*, simply take the “2's complement” of the 2's Complement. N = (2n) – N* or 2's complement rep. for negative # positive # N = (N*)' + 1 bit-wise complement of 2's complement Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Signed Binary Numbers Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Arithmetic of Signed Binary Numbers Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 2's Complement Addition Addition of n-bit signed binary numbers is straightforward using the 2's Complement number system. Addition is carried out in the same way as for n-bit positive numbers. Carry from the sign bit (leftmost bit) is ignored. Overflow occurs if the correct result (including the sign bit) cannot be represented in n bits. Spring 2011 ECE 331 - Digital System Design
2's Complement Addition: Example Using 2's Complement addition and 8-bit representation, add the following numbers: -47 + 83 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Addition: Example Using 2's Complement addition and 8-bit representation, add the following numbers: -32 + -105 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Addition: Example Using 2's Complement addition and 8-bit representation, add the following numbers: 19 + 52 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Addition: Example Using 2's Complement addition and 8-bit representation, add the following numbers: 64 + 78 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Subtraction Subtraction can be implemented using addition. Determine the 2's Complement representation for the negative number -B. Use 2's Complement addition to add A and -B. A – B = A + (-B) Spring 2011 ECE 331 - Digital System Design
2's Complement Subtraction: Example Subtract the following numbers, using 2's Complement addition and 8-bit representation: 64 – 78 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Subtraction: Example Subtract the following numbers, using 2's Complement addition and 8-bit representation: -35 – 62 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Subtraction: Example Subtract the following numbers, using 2's Complement addition and 8-bit representation: 14 – (-59) Did overflow occur? Spring 2011 ECE 331 - Digital System Design
2's Complement Subtraction: Example Subtract the following numbers, using binary subtraction and 8-bit representation: 27 – 45 Can this subtraction be carried out? Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design 1's Complement Addition Similar to 2's Complement Addition of n-bit signed binary numbers. However, rather than ignore the carry-out from the sign (leftmost) bit, add it to the least significant bit (LSB) of the n-bit sum. Known as the end-around carry. Spring 2011 ECE 331 - Digital System Design
1's Complement Addition: Example Using 1's Complement addition and 8-bit representation, add the following numbers: -31 + -84 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
1's Complement Addition: Example Using 1's Complement addition and 8-bit representation, add the following numbers: 52 + 73 Did overflow occur? Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Overflow The general rule for detecting overflow when performing 2's Complement or 1's Complement Addition: An overflow occurs when the addition of two positive numbers results in a negative number. An overflow occurs when the addition of two negative numbers results in a positive number. Overflow cannot occur when adding a positive number to a negative number. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes Weighted Codes Each position in the code has a specific weight Decimal value of code can be determined Unweighted Codes Positions of code do not have a specific weight Decimal value assigned to each code Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes n-bit Weighted Codes Code: an-1an-2an-3...a1a0 Weights: wn-1, wn-2, wn-3, ..., w1, w0 Decimal Value: an-1 x wn-1 + an-2 x wn-2 + … + a1 x w1 + a0 x w0 4-bit Weighted Code Code: a3a2a1a0 Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes Examples of 4-bit weighted codes 8-4-2-1 4 bits → 16 code words Only 10 code words required to represent decimal digits 6-3-1-1 Excess-3 (obtained from 8-4-2-1) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes Examples of unweighted codes 2-out-of-5 Code Exactly 2 of the 5 bits are “1” for a valid code word. 10 valid code words. Gray Code Code values for successive decimal digits differ in exactly one bit. 4 bits → 16 code words. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Codes Spring 2011 ECE 331 - Digital System Design
Binary Coded Decimal (BCD) 4-bit binary number used to represent each decimal digit. Weighted code: 8-4-2-1 Binary values 0000 … 1001 used to represent decimal values 0 … 9. Binary values 1010 … 1111 not used. Very different from binary representation. Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Binary Coded Decimal In BCD, each decimal digit is replaced by its binary equivalent value. Example: Binary: 937.2510 = 1110101001.012 Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design ASCII American Standard Code for Information Interchange Common code for the storage and transfer of alphanumeric characters. 7-bit Weighted Code Can represent 128 characters Used to represent letters, numbers, and other characters Any word or number can be represented using its ASCII code. Spring 2011 ECE 331 - Digital System Design
ASCII Code (incomplete) Spring 2011 ECE 331 - Digital System Design
ECE 331 - Digital System Design Questions? Spring 2011 ECE 331 - Digital System Design