How to add two integers without using arithmetic operators in C

2 Answers

0 votes
#include <stdio.h>

int Add(int x, int y) { 
    while (y != 0) { 
        int carry = x & y;  
		printf("carry = x & y = %d\n", carry);  
  
        x = x ^ y;  
		printf("x = x ^ y = %d\n", x);  
		
        y = carry << 1; 
		printf("y = carry << 1 = %d\n", y);  
    } 
    return x; 
} 
     
int main() 
{ 
	printf("%d\n", Add(8739, 19)); 
     
    return 0; 
} 
   
 
 
      
/*
run:
       
carry = x & y = 3
x = x ^ y = 8752
y = carry << 1 = 6
carry = x & y = 0
x = x ^ y = 8758
y = carry << 1 = 0
8758
  
*/

 



answered Jul 3, 2020 by avibootz
0 votes
#include <stdio.h>

int Add(int x, int y) { 
	int sum = x ^ y;
	int carry = x & y;
	if (carry == 0)
		return sum;
	else
      return Add(sum, carry << 1);
} 
     
int main() 
{ 
	printf("%d\n", Add(8739, 19)); 
     
    return 0; 
} 
   
 
 
      
/*
run:
       
8758
  
*/

 



answered Jul 3, 2020 by avibootz
...