243 2s Complement Arithmkhkhjketic

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

2s Complement Arithmetic

Digital Electronics

2s Complement Arithmetic
This presentation will demonstrate That subtracting one number from another is the same as making one number negative and adding. How to create negative numbers in the binary number system. The 2s Complement Process. How the 2s complement process can be use to add (and subtract) binary numbers.
2

Negative Numbers?
Digital electronics requires frequent addition and subtraction of numbers. You know how to design an adder, but what about a subtract-er? A subtract-er is not needed with the 2s complement process. The 2s complement process allows you to easily convert a positive number into its negative equivalent. Since subtracting one number from another is the same as making one number negative and adding, the need for a subtract-er circuit has been eliminated.

How To Create A Negative Number


In digital electronics you cannot simply put a minus sign in front of a number to make it negative. You must represent a negative number in a fixedlength binary number system. All signed arithmetic must be performed in a fixed-length number system. A physical fixed-length device (usually memory) contains a fixed number of bits (usually 4-bits, 8bits, 16-bits) to hold the number.
4

3-Digit Decimal Number System


A bicycle odometer with only three digits is an example of a fixed-length decimal number system. The problem is that without a negative sign, you cannot tell a +998 from a -2 (also a 998). Did you ride forward for 998 miles or backward for 2 miles?
Note: Car odometers do not work this way.
999 998 997

forward (+)

001 000 999 998

002 001

backward (-)
5

Negative Decimal
How do we represent negative numbers in this 3digit decimal number system without using a sign?
Cut the number system in half. Use 001 499 to indicate positive numbers. Use 500 999 to indicate negative numbers. Notice that 000 is not positive or negative.
+499 +498 +497 499 498 497

pos(+)

+001 000 -001 -002

001 000 999 998

-499 -500

501 500

neg(-)
6

Odometer Math Examples


3 + 2 5 003 + 002 005

6 + (-3)
3

006 + 997 1003


Disregard Overflow

(-5) + 2 (-3)

995 + 002 997 It Works!

(-2) + (-3)
(-5)

998 + 997
1995
Disregard Overflow
7

Complex Problems
The previous examples demonstrate that this process works, but how do we easily convert a number into its negative equivalent? In the examples, converting the negative numbers into the 3-digit decimal number system was fairly easy. To convert the (-3), you simply counted backward from 1000 (i.e., 999, 998, 997). This process is not as easy for large numbers (e.g., -214 is 786). How did we determine this? To convert a large negative number, you can use the 10s Complement Process.
8

10s Complement Process


The 10s Complement process uses base-10 (decimal) numbers. Later, when were working with base-2 (binary) numbers, you will see that the 2s Complement process works in the same way.

First, complement all of the digits in a number.


A digits complement is the number you add to the digit to make it equal to the largest digit in the base (i.e., 9 for decimal). The complement of 0 is 9, 1 is 8, 2 is 7, etc.

Second, add 1.
Without this step, our number system would have two zeroes (+0 & -0), which no number system has.
9

10s Complement Examples


Example #1

-003 996 +1 997


-214 785 +1 786

Complement Digits

Add 1

Example #2
Complement Digits

Add 1

10

8-Bit Binary Number System


Apply what you have learned to the binary number systems. How do you represent negative numbers in this 8-bit binary system?
+127 +126 +125 01111111 01111110 01111101

pos(+)

Cut the number system in half.


Use 00000001 01111111 to indicate positive numbers. Use 10000000 11111111 to indicate negative numbers. Notice that 00000000 is not positive or negative.

+1 0 -1 -2

00000001 00000000 11111111 11111110

-127 -128

10000001 10000000

neg(-)
11

Sign Bit
What did do you notice about the most significant bit of the binary numbers? The MSB is (0) for all positive numbers. The MSB is (1) for all negative numbers. The MSB is called the sign bit. In a signed number system, this allows you to instantly determine whether a number is positive or negative.
+127 +126 +125 01111111 01111110 01111101

pos(+)

+1 0 -1 -2

00000001 00000000 11111111 11111110

-127 -128

10000001 10000000

neg(-)
12

2S Complement Process
The steps in the 2s Complement process are similar to the 10s Complement process. However, you will now use the base two. First, complement all of the digits in a number.
A digits complement is the number you add to the digit to make it equal to the largest digit in the base (i.e., 1 for binary). In binary language, the complement of 0 is 1, and the complement of 1 is 0.

Second, add 1.
Without this step, our number system would have two zeroes (+0 & -0), which no number system has.
13

2s Complement Examples
Example #1
5 = 00000101 11111010
+1 Complement Digits

-5 = 11111011

Add 1

Example #2
-13 = 11110011 00001100
+1
Complement Digits

13 = 00001101

Add 1
14

Using The 2s Compliment Process


Use the 2s complement process to add together the following numbers.

POS + POS POS POS + NEG POS

9 + 5 14

NEG + POS NEG NEG + NEG NEG

(-9) + 5 -4

9 + (-5) 4

(-9) + (-5) - 14

15

POS + POS POS Answer


If no 2s complement is needed, use regular binary addition.

9 + 5 14

00001001 + 00000101 00001110

16

POS + NEG POS Answer


Take the 2s complement of the negative number and use regular binary addition.

9 + (-5) 4

00001001 + 11111011 1]00000100


8th Bit = 0: Answer is Positive Disregard 9th Bit

00000101 11111010 +1 11111011

2s Complement Process
17

POS + NEG NEG Answer


Take the 2s complement of the negative number and use regular binary addition.

(-9) + 5 -4
11111100 00000011 +1 00000100

11110111 + 00000101 11111100


8th Bit = 1: Answer is Negative

To Check: Perform 2s Complement On Answer

00001001 11110110 +1 11110111

2s Complement Process
18

NEG + NEG NEG Answer


Take the 2s complement of both negative numbers and use regular binary addition.

(-9) + (-5) -14


11110010 00001101 +1 00001110

11110111 + 11111011 1]11110010


8th Bit = 1: Answer is Negative Disregard 9th Bit

2s Complement Numbers, See Conversion Process In Previous Slides

To Check: Perform 2s Complement On Answer

19

You might also like