Subtraction of two numbers using 2’s Complement
Given two numbers and
. The task is to subtract
from
by using 2’s Complement method.
Note: Negative numbers represented as 2’s Complement of Positive Numbers.
For example, -5 can be represented in binary form as 2’s Compliment of 5. Look at the image below:
Examples:
Input : a = 2, b = 3 Output : -1 Input : a = 9, b = 7 Output : 2
To subtract from
. Write the expression (a-b) as:
(a - b) = a + (-b)
Now (-b) can be written as (2’s complement of b). So the above expression can be now written as:
(a - b) = a + (2's complement of b)
So, the problem now reduces to “Add to the 2’s complement of
“. Below image illustrates the above method of subtraction for the first example where a = 2 and b = 3.
Below is the implementation of above method:
C++
#include <bits/stdc++.h> using namespace std; // function to subtract two values // using 2's complement method int Subtract( int a, int b) { int c; // ~b is the 1's Complement of b // adding 1 to it make it 2's Complement c = a + (~b + 1); return c; } // Driver code int main() { int a = 2, b = 3; cout << Subtract(a, b)<<endl; a = 9; b = 7; cout << Subtract(a, b); return 0; } |
Java
class GFG { // function to subtract two values // using 2's complement method static int Subtract( int a, int b) { int c; // ~b is the 1's Complement // of b adding 1 to it make // it 2's Complement c = a + (~b + 1 ); return c; } // Driver code public static void main(String[] args) { int a = 2 , b = 3 ; System.out.println(Subtract(a, b)); a = 9 ; b = 7 ; System.out.println(Subtract(a, b)); } } // This code is contributed // by ChitraNayal |
Python3
# python3 program of subtraction of # two numbers using 2's complement . # function to subtract two values # using 2's complement method def Subtract(a,b): # ~b is the 1's Complement of b # adding 1 to it make it 2's Complement c = a + (~b + 1 ) return c # Driver code if __name__ = = "__main__" : # multiple assignments a,b = 2 , 3 print (Subtract(a,b)) a,b = 9 , 7 print (Subtract(a,b)) |
C#
// C# program of subtraction of // two numbers using 2's complement using System; class GFG { // function to subtract two values // using 2's complement method static int Subtract( int a, int b) { int c; // ~b is the 1's Complement // of b adding 1 to it make // it 2's Complement c = a + (~b + 1); return c; } // Driver code static void Main() { int a = 2, b = 3; Console.WriteLine(Subtract(a, b)); a = 9; b = 7; Console.WriteLine(Subtract(a, b)); } } // This code is contributed // by mits |
PHP
<?php // function to subtract two values // using 2's complement method function Subtract( $a , $b ) { // ~b is the 1's Complement // of b adding 1 to it make // it 2's Complement $c = $a + (~ $b + 1); return $c ; } // Driver code $a = 2; $b = 3; echo Subtract( $a , $b ) . "\n" ; $a = 9; $b = 7; echo Subtract( $a , $b ) . "\n" ; // This code is contributed // by ChitraNayal ?> |
-1 2
Recommended Posts:
- Check if one of the numbers is one's complement of the other
- Why are negative numbers stored as 2's complement?
- Check if bits in range L to R of two numbers are complement of each other or not
- What’s difference between 1's Complement and 2's Complement?
- Program for subtraction of matrices
- 9's complement of a decimal number
- 1's and 2's complement of a Binary Number
- Complement of a number with any base b
- Previous number same as 1's complement
- 10's Complement of a decimal number
- Find One's Complement of an Integer
- Efficient method for 2's complement of a binary string
- 8085 program to find 1’s and 2’s complement of 16-bit number
- 8085 program to find 1's and 2's complement of 8-bit number
- Find relative complement of two sorted arrays
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.