This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<stdio.h> | |
int Add(int x, int y) | |
{ | |
// Iterate till there is no carry | |
while (y != 0) | |
{ | |
// carry now contains common set bits of x and y | |
int carry = x & y; | |
// Sum of bits of x and y where at least one of the bits is not set | |
x = x ^ y; | |
// Carry is shifted by one so that adding it to x gives the required sum | |
y = carry << 1; | |
} | |
return x; | |
} | |
int main() | |
{ | |
printf("%d", Add(30, 32)); | |
return 0; | |
} |
No comments:
Post a Comment