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

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

Input: N = 5Output: 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 = 1Output: 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 <bits/stdc++.h>` `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

`<script>` `// Javascript program to find the number` `// of changed bit` `// Function to find number of changed bit` `function` `findChangedBit(n)` `{` ` ` `// Calculate xor of n and n+1` ` ` `let XOR = n ^ (n + 1);` ` ` `// Count set bits in xor value` ` ` `let result = bitCount(XOR);` ` ` `// Return the result` ` ` `return` `result;` `}` `function` `bitCount(x)` `{` ` ` `// To store the count` ` ` `// of set bits` ` ` `let setBits = 0;` ` ` `while` `(x != 0)` ` ` `{` ` ` `x = x & (x - 1);` ` ` `setBits++;` ` ` `}` ` ` `return` `setBits;` `}` `// Driver function` ` ` `let n = 6;` ` ` `document.write(findChangedBit(n) + ` `"<br>"` `);` ` ` `n = 7;` ` ` `document.write(findChangedBit(n));` `</script>` |

**Output:**

1 4

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.