Idea 1:-
Half adder logic
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:-
Good Content
ReplyDeleteThanks for the feedback!
Delete