460 likes | 468 Views
This lecture in ECE 331 - Digital System Design explores various representations for negative numbers in binary, including sign and magnitude, 1's complement, and 2's complement. It also covers arithmetic circuits for these representations.
E N D
Representation of Negative Numbers, Binary Arithmetic of Negative Numbers, and Binary Codes (Lecture #11) ECE 331 – Digital System Design 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 Representation of Negative Numbers (continued)
ECE 331 - Digital System Design Representations for signed binary numbers: 1. Sign and Magnitude 2. 1's Complement 3. 2's Complement Signed Binary Numbers
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.
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.
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
ECE 331 - Digital System Design Using 8 bits, determine the 1's Complement representation for the following negative numbers: -15 -102 1's Complement: Examples
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
ECE 331 - Digital System Design Using 8 bits, determine the 1's Complement representation for the following negative numbers: -15 -102 1's Complement: Examples (Use the bit-wise complement)
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)
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'
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.
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
ECE 331 - Digital System Design Using 8 bits, determine the 2's Complement representation for the following negative numbers: -12 -95 2's Complement: Examples
ECE 331 - Digital System Design The 1's and 2's Complement representations for a negative number, -N, are related as follows: N' = (2n - 1) – N N* = (2n) – N N* = N' +1 2's Complement
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
ECE 331 - Digital System Design Using 8 bits, determine the 2's Complement representation for the following negative numbers: -12 -95 2's Complement: Examples (Use the 1's complement)
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)
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* 2's complement rep. for negative # or positive # N = (N*)' + 1 bit-wise complement of 2's complement
ECE 331 - Digital System Design Signed Binary Numbers
ECE 331 - Digital System Design Binary Arithmetic of Signed Binary Numbers
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.
ECE 331 - Digital System Design Using 2's Complement addition and 8-bit representation, add the following numbers: -47 + 83 2's Complement Addition: Example Did overflow occur?
ECE 331 - Digital System Design Using 2's Complement addition and 8-bit representation, add the following numbers: -32 + -105 2's Complement Addition: Example Did overflow occur?
ECE 331 - Digital System Design Using 2's Complement addition and 8-bit representation, add the following numbers: 19 + 52 2's Complement Addition: Example Did overflow occur?
ECE 331 - Digital System Design Using 2's Complement addition and 8-bit representation, add the following numbers: 64 + 78 2's Complement Addition: Example Did overflow occur?
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)
ECE 331 - Digital System Design Subtract the following numbers, using 2's Complement addition and 8-bit representation: 64 – 78 2's Complement Subtraction: Example Did overflow occur?
ECE 331 - Digital System Design Subtract the following numbers, using 2's Complement addition and 8-bit representation: -35 – 62 2's Complement Subtraction: Example Did overflow occur?
ECE 331 - Digital System Design Subtract the following numbers, using 2's Complement addition and 8-bit representation: 14 – (-59) 2's Complement Subtraction: Example Did overflow occur?
ECE 331 - Digital System Design Subtract the following numbers, using binary subtraction and 8-bit representation: 27 – 45 2's Complement Subtraction: Example Can this subtraction be carried out?
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.
ECE 331 - Digital System Design Using 1's Complement addition and 8-bit representation, add the following numbers: -31 + -84 1's Complement Addition: Example Did overflow occur?
ECE 331 - Digital System Design Using 1's Complement addition and 8-bit representation, add the following numbers: 52 + 73 1's Complement Addition: Example Did overflow occur?
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.
ECE 331 - Digital System Design Binary Codes
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
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
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 • 4 bits → 16 code words • Excess-3 (obtained from 8-4-2-1) • 4 bits → 16 code words
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.
ECE 331 - Digital System Design Binary Codes
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.
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
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.
ECE 331 - Digital System Design ASCII Code (incomplete)
ECE 331 - Digital System Design Questions?