Write a c program to add two numbers without using addition operator






Add two numbers in c without using operator

How to add two numbers without using the plus operator in c

#include<stdio.h>

int main(){
   
    int a,b;
    int sum;

    printf("Enter any two integers: ");
    scanf("%d%d",&a,&b);

    //sum = a - (-b);
    sum = a - ~b -1;

    printf("Sum of two integers: %d",sum);

    return 0;
}



Sample output:

Enter any two integers: 5 10

Sum of two integers: 15


Algorithm:

In c ~ is 1's complement operator. This is equivalent to:  
~a = -b + 1
So, a - ~b -1
= a-(-b + 1) + 1
= a + b – 1 + 1
= a + b





37 comments:

mohit said...

sir (~) tiled use karne se two number add kyun hue...kya aap xplain kr sakte h...

ankur patel said...

@mohit
a+b=a-(-b)
but we know -b=(~b+1)
so
a+b=a - (~b+1)
a+b= a - ~b - 1

Anonymous said...

I m just getting crazy in making c problems and i have completed all my assignments and problems that i had in handouts or pdf's and now i got this site as a helping tool to improve my skill to professional level..... Thankx man.. for giving us problems.... :) mean c problems.... ;)

Hanish Maghu said...

here is a simple logic...adding a and b..say a=5 b=4 so a+b=5+4=9

int main(void)
{
int a=5,b=4;// you can input those nos from user...
while(b)
{
a++;
b--;
}
printf("%d",a);
}

Anonymous said...

still not clear with '~'...

Anonymous said...

~b = -(b+1)
so a-(~b)-1 = a-(-(b+1))-1
= a+b+1-1
= a+b

Anand Barnwal said...

'~' is a type of bitwise operator.
This simply means one's complement.
Bitwise operators can only be operated upon ints & chars.
On taking the one's complement of a number, all the 1's are changed to 0's and vice-versa.
e.g: one's complement of 5 (0101) is -6 (1010).

Anand Barnwal said...

This code doesn't use any arithmetic operators to add two numbers.

main()
{
int num1, num2;
scanf("%d %d",num1, num2);
printf("%d", Add(num1, num2));
}

int Add(int x, int y)
{
if (y == 0)
return x;
else
return Add( x ^ y, (x & y) << 1);
}

prashant said...

please write explanation also. . .

Mukilan said...

while (num2) // do until carry
{
int carry = num1 & num2 // if its 1 & 1 we get carry
num1 = num1 ^ num2; // add all 0 +1 = 1
num2 = carry << 1; // now we need to carry
}
return num1

Mukilan said...

while (num2) // do until carry
{
int carry = num1 & num2 // if its 1 & 1 we get carry
num1 = num1 ^ num2; // add all 0 +1 = 1
num2 = carry << 1; // now we need to carry
}
return num1

Mukilan said...

while (num2) // do until carry
{
int carry = num1 & num2 // if its 1 & 1 we get carry
num1 = num1 ^ num2; // add all 0 +1 = 1
num2 = carry << 1; // now we need to carry
}
return num1

Anonymous said...

BH JUYHC

Anonymous said...

i cant understand

Anonymous said...

plz also share the problem for multiplication with out using * operator!!!

Yihuan Huang said...

Here is a slight modification that adds subtraction feature as well:

/* Adds two signed integers. Does a subtract when cin = 1 */
int adder(int a, int b, int cin)
{
if (cin) b = ~b;
int carry = (a & b) << 1 | cin;
a ^= b;
b = carry;

while (b) {
carry = (a & b) << 1;
a ^= b;
b = carry;
}

return a;
}

Anonymous said...

you can as well use ^ operator.
a^b will give you its sum.

joginder Banger said...

Good thing boss

Asrith Namgari Reddy said...

nice one

Vikram Mp said...

void main()
{
int a=10,b=10,c;
clrscr();
c=a- -b;
printf("%d",c);
}

manan singla said...

You have used "+" operator (A++ which is A = A + 1) which is forbidden in the question itself.

Nancy Ncit said...

The mission of NCITSolutions is to provide viable, low cost outsourcing solutions. We offer you offshore services tailor made to suit your distinctive requirements. Our low cost IT solutions afford you a competitive edge while delivering tangible results. With a software team whose core competencies range from software design to graphic design, we are equipped to process all your IT needs as we operate on a vast gamut of systems such as: Linux, UNIX, Windows, iOS and Android.

NCITSolutions is an independent and unique organization that was created with the objective of facilitating offshore/outsourcing services to enable clients to benefit from potential business opportunities made available through the creation of free and fair markets in the Middle East region.

We offer:
• Individual outsourcing facilities uniquely tailored for each customer.
• Identification of available market resources and potential partners
• On-the-ground management and support in Jordan
• Legal, technical and cultural support for ventures.
Numerous global companies have set up offices in Amman- Jordan in a bid to promote partnerships and joint ventures with Middle East companies. NCITSolutions maintains a physical presence with staff on the ground in Amman- Jordan. We can also provide businesses with space and easy access to our business support services through our affiliate in Amman Jordan.

Visit us at ncitsolutions.com or contact us at 919-324-6505

Nancy Ncit said...

The mission of NCITSolutions is to provide viable, low cost outsourcing solutions. We offer you offshore services tailor made to suit your distinctive requirements. Our low cost IT solutions afford you a competitive edge while delivering tangible results. With a software team whose core competencies range from software design to graphic design, we are equipped to process all your IT needs as we operate on a vast gamut of systems such as: Linux, UNIX, Windows, iOS and Android.

NCITSolutions is an independent and unique organization that was created with the objective of facilitating offshore/outsourcing services to enable clients to benefit from potential business opportunities made available through the creation of free and fair markets in the Middle East region.

We offer:
• Individual outsourcing facilities uniquely tailored for each customer.
• Identification of available market resources and potential partners
• On-the-ground management and support in Jordan
• Legal, technical and cultural support for ventures.
Numerous global companies have set up offices in Amman- Jordan in a bid to promote partnerships and joint ventures with Middle East companies. NCITSolutions maintains a physical presence with staff on the ground in Amman- Jordan. We can also provide businesses with space and easy access to our business support services through our affiliate in Amman Jordan.

Visit us at ncitsolutions.com or contact us at 919-324-6505

Roopam Gupta said...

Simply we can do it as:
#include

int main(){

int a,b;


printf("Enter any two integers: ");
scanf("%d%d",&a,&b);

for(int i=0;i<b;i++)
{
a++;
}

printf("Sum of two integers: %d",a);

return 0;
}

suraj kumar said...

+ is different and ++ is different... question says without using addition operator.. ++ is not addition operator. so the solution is correct. :)

ranielli anschau said...

^ is a bitwise operator and used to perform bit-by-bit operation.
C Tutorial

Krishna said...

~b = -(b + 1 )
This is the right ones complement .

sandeep saxena said...

I have clarified my doubts through this. Everyone will benefit and thankyou so much for this article.
core java training in chennai
core java course
core java Training in Adyar
c c++ course fees in chennai
javascript training center in chennai
Drupal Training in Chennai
Photoshop Classes in Chennai
core java training in chennai

Yogesh said...

Awesome post. Thank you so much.
ios app Devlopment company in chennai

raneedevan said...

nice blog..valuable information....thanks for sharing...
C C++ Training in Chennai
C Training in Chennai
C++ Training in Chennai
C C++ training in anna nagar
C C++ training in velachery
javascript training in chennai
core java training in chennai
Html5 Training in Chennai
DOT NET Training in Chennai
QTP Training in Chennai

vinudevan said...

Thanks for giving excellent Message. Waiting for the next article
DOT NET Training in Chennai
DOT NET Course Chennai
dot net institute in chennai
best dotnet training in chennai
dot net training in Porur
Html5 Training in Chennai
Spring Training in Chennai
Struts Training in Chennai
Wordpress Training in Chennai
SAS Training in Chennai

Riya Raj said...

Wonderful blog!!! Thanks for sharing this great information with us...
SEO Training in Chennai
SEO Course in Chennai
SEO Training Institute in Chennai
search engine optimization course
SEO training in vadapalani
SEO training in porur
Python Training in Chennai
Hadoop Training in Chennai
Big data training in chennai
JAVA Training in Chennai

High Technologies Solutions said...

I really like your post. I found it very helpful. Please keep posting such kind of valuable post.
C++ Course in Delhi

andriya said...

Nice article, its very informative content..thanks for sharing...Waiting for the next update...
Drupal Training in Chennai
Drupal Course in Chennai
Drupal Training
Drupal Training in OMR
Drupal Training in Porur
Photoshop Classes in Chennai
clinical sas training in chennai
SAS Training in Chennai
javascript training in chennai
Hibernate Training in Chennai

Riya Raj said...

Good Blog!!! The way you have conveyed your blog is more impressive...
JAVA Training in Chennai
java class
best java coaching center in chennai
Java training institute in chennai
java training in Guindy
JAVA Training in Tambaram
Python Training in Chennai
Big data training in chennai
SEO training in chennai
Selenium Training in Chennai

Manisha Sudha said...

Awesome blog...thanks for sharing valuable articles.....
Struts Training in Chennai
Struts Training institutes in Chennai
Struts Training Chennai
struts Training in Anna Nagar
struts Training in T Nagar
Wordpress Training in Chennai
SAS Training in Chennai
Spring Training in Chennai
Photoshop Classes in Chennai
DOT NET Training in Chennai

Anjudevan said...

Awesome Article...Thanks for sharing...waiting for next update...
Wordpress Training in Chennai
Best Wordpress Training in Chennai
WordPress course
Wordpress Training in Velachery
Wordpress Training in Tambaram
Struts Training in Chennai
clinical sas training in chennai
Spring Training in Chennai
Photoshop Classes in Chennai
LoadRunner Training in Chennai