## Sunday, 11 April 2021

### Sum of two number without using '+' operator

Idea 1:-

A half adder has two inputs for the two bits to be added and two outputs one from the ‘sum’ and the other from the ‘carry’ into the higher adder position. A circuit is called a carrying  signal from the addition of the sum of the less significant bits from the X-OR gate the out from AND gate.

Truth table :-

 A B SUM CARRY 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

In the truth table.  you can see I have provided all possible combinations of  A and B. Now if you observe the truth table clearly,  the sum is nothing but A X-or  B. As we know in X-or two different bits give the output  1.

Carry is equal to A and B because we have like 1, 1 input combination the output is equal to one. Therefor

SUM = A  XOR  B

Carry = A  AND  B

C program

#include <stdio.h>

int main()

{

int a, b, sum, carry;

printf("a=");

scanf("%d", &a);

printf("b=");

scanf("%d", &b);

while (b != 0)

{

sum = a ^ b;

carry = (a & b) << 1;

a = sum;

b = carry;

}

printf("sum = %d", sum);

return 0;

}

Explanation of program

Step 1:  Declared two integer type variable a and b. sum and carry taken from to logic gate which is XOR and AND.

Step 2: Give the input in an integer type variable ‘a’ and ‘b’ by scanf() function.

Step 3: Use while loop check b is not equal to zero. the sum is equal to a^b then after carry is equal to a&b <<1 . and stored the value of sum in a. and stored the value of carry in b.

Step 4: Print the sum.

Output:-

Idea 2

Using while loop

C program

#include <stdio.h>

int main()

{

int a, b;

printf("a=");

scanf("%d", &a);

printf("b=");

scanf("%d", &b);

if (b > 0)

{

while (b != 0)

{

a++;

b--;

}

}

else if (b < 0)

{

while (b != 0)

{

a--;

b++;

}

}

printf("sum = %d\n", a);

return 0;

}

Output:-

1. 1. 