When adding two binary numbers by hand we keep the carry bits in mind and add it at the same time. But to do same thing in program we need a lot of checks. Recursive solution can be imagined as addition of carry and a^b (two inputs) until carry becomes 0.
Input : int x = 45, y = 45 Output : 90 Input : int x = 4, y = 78 Output : 82
Sum of two bits can be obtained by performing XOR (^) of the two bits. Carry bit can be obtained by performing AND (&) of two bits.
Above is simple Half Adder logic that can be used to add 2 single bits. We can extend this logic for integers. If x and y don’t have set bits at same position(s), then bitwise XOR (^) of x and y gives the sum of x and y. To incorporate common set bits also, bitwise AND (&) is used. Bitwise AND of x and y gives all carry bits. We calculate (x & y) << 1 and add it to x ^ y to get the required result.
One important observation is, if (x & y) becomes 0, then result is x ^ y.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Recursive program to print formula for GCD of n integers
- Total pairs in an array such that the bitwise AND, bitwise OR and bitwise XOR of LSB is 1
- Leftover element after performing alternate Bitwise OR and Bitwise XOR operations on adjacent pairs
- Find subsequences with maximum Bitwise AND and Bitwise OR
- BCD addition of given Decimal numbers
- Addition of two numbers without carry
- Modify array by merging elements with addition such that it consists of only Primes.
- Recursive Functions
- Recursive Insertion Sort
- Recursive Implementation of atoi()
- Recursive Bubble Sort
- Modular exponentiation (Recursive)
- Recursive Program for Binary to Decimal
- Recursive Practice Problems with Solutions
- Recursive program for prime number
- Recursive program to find the Sum of the series 1 - 1/2 + 1/3 - 1/4 ... 1/N
- Recursive program to generate power set
- Recursive program to print all subsets with given sum
- Maximal Clique Problem | Recursive Solution
- Program to reverse a string (Iterative and Recursive)
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.