# Count number of bits changed after adding 1 to given N

• Last Updated : 28 Apr, 2021

Given an integer . The task is to find the number of bits changed after adding 1 to the given number.
Examples

```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 this case, 1 is added to 1 then it got changed and passes 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 a 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

## C++

 `// CPP program to find the number` `// of changed bit` `#include ` `using` `namespace` `std;`   `// Function to find number of changed bit` `int` `findChangedBit(``int` `n)` `{` `    ``// Calculate xor of n and n+1` `    ``int` `XOR = n ^ (n + 1);`   `    ``// Count set bits in xor value` `    ``int` `result = __builtin_popcount(XOR);`   `    ``// Return the result` `    ``return` `result;` `}`   `// Driver function` `int` `main()` `{` `    ``int` `n = 6;` `    ``cout << findChangedBit(n) << endl;`   `    ``n = 7;` `    ``cout << findChangedBit(n);`   `    ``return` `0;` `}`

## Java

 `// Java program to find the number` `// of changed bit` `class` `GFG ` `{`   `// Function to find number of changed bit` `static` `int` `findChangedBit(``int` `n)` `{` `    ``// Calculate xor of n and n+1` `    ``int` `XOR = n ^ (n + ``1``);`   `    ``// Count set bits in xor value` `    ``int` `result = Integer.bitCount(XOR);`   `    ``// Return the result` `    ``return` `result;` `}`   `// Driver code` `public` `static` `void` `main(String[] args) ` `{` `    ``int` `n = ``6``;` `    ``System.out.println(findChangedBit(n));`   `    ``n = ``7``;` `    ``System.out.println(findChangedBit(n));` `}` `}`   `// This code contributed by Rajput-Ji`

## Python3

 `# Python 3 program to find the number` `# of changed bit`   `# Function to find number of changed bit` `def` `findChangedBit(n):` `    `  `    ``# Calculate xor of n and n+1` `    ``XOR ``=` `n ^ (n ``+` `1``)`   `    ``# Count set bits in xor value` `    ``result ``=` `bin``(XOR).count(``"1"``)`   `    ``# Return the result` `    ``return` `result`   `# Driver Code` `if` `__name__ ``=``=` `'__main__'``:` `    ``n ``=` `6` `    ``print``(findChangedBit(n))`   `    ``n ``=` `7` `    ``print``(findChangedBit(n))`   `# This code is contributed by` `# Surendra_Gangwar`

## C#

 `// C# program to find the number` `// of changed bit` `using` `System;` `    `  `class` `GFG ` `{`   `// Function to find number of changed bit` `static` `int` `findChangedBit(``int` `n)` `{` `    ``// Calculate xor of n and n+1` `    ``int` `XOR = n ^ (n + 1);`   `    ``// Count set bits in xor value` `    ``int` `result = bitCount(XOR);`   `    ``// Return the result` `    ``return` `result;` `}` `static` `int` `bitCount(``int` `x)` `{`   `    ``// To store the count` `    ``// of set bits` `    ``int` `setBits = 0;` `    ``while` `(x != 0) ` `    ``{` `        ``x = x & (x - 1);` `        ``setBits++;` `    ``}`   `    ``return` `setBits;` `}`   `// Driver code` `public` `static` `void` `Main(String[] args) ` `{` `    ``int` `n = 6;` `    ``Console.WriteLine(findChangedBit(n));`   `    ``n = 7;` `    ``Console.WriteLine(findChangedBit(n));` `}` `}`   `/* This code contributed by PrinciRaj1992 */`

## Javascript

 ``

Output:

```1
4```

My Personal Notes arrow_drop_up
Recommended Articles
Page :