Given an integer . The task is to find the number of bits changed after adding 1 to the given number.
Input : N = 5 Output : 2 After adding 1 to 5 it becomes 6. Binary representation of 5 is 101. Binary representation of 6 is 110. So, no. of bits changed is 2. Input : N = 1 Output : 2
There are three approaches to find the number of changed bits in the result obtained after adding 1 to the given value N:
- Approach 1: Add 1 to given integer and compare the bits of N and the result obtained after addition and count the number of unmatched bit.
- Approach 2: In case if 1 is added to N, then the total number of bits changed is defined by the position of 1st Zero from right i.e. LSB as zero. In the case, 1 is added to 1 then it got changed and pass a carry 1 to its next bit but if 1 is added to 0 only 0 changes to 1 and no further carry is passed.
- Approach 3: For finding number of changed bits when 1 is added to a given number take XOR of n and n+1 and calculate the number of set bits in the resultant XOR value.
Below is the implementation of the Approach 3:
- Maximum sum by adding numbers with same number of set bits
- Check if bits of a number has count of consecutive set bits in increasing order
- Count unset bits of a number
- Count total bits in a number
- Count Set-bits of number using Recursion
- Count pairs (A, B) such that A has X and B has Y number of set bits and A+B = C
- Count number of bits to be flipped to convert A to B | Set-2
- Count pairs of elements such that number of set bits in their AND is B[i]
- Program to count number of set bits in an (big) array
- Count number of bits to be flipped to convert A to B
- Count pairs of elements such that number of set bits in their OR is B[i]
- Count number of set bits in a range using bitset
- Find a number X such that (X XOR A) is minimum and the count of set bits in X and B are equal
- Count set bits in the Kth number after segregating even and odd from N natural numbers
- Toggle bits of a number except first and last bits
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.