# Change all even bits in a number to 0

Given a number, change all bits at even positions to 0.

Examples:

```Input : 30
Output : 10
Binary representation of 11110.
Bits at Even positions are highlighted.
After making all of them 0, we get 01010

Input :  10
Output :  10
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Method 1 (Bit Traversal)

The idea is to traverse through all even bits. We accumulate all powers of 2 in a number to subtract. Finally we subtract the accumulated value from n to obtain the result.

## C++

 `// C++ program to change even ` `// bits to 0. ` `#include ` `using` `namespace` `std; ` ` `  `// Returns modified number with ` `// all even bits 0. ` `int` `changeEvenBits(``int` `n) ` `{ ` `    ``// To store sum of bits ` `    ``// at even positions. ` `    ``int` `to_subtract = 0; ` ` `  `    ``// To store bits to shift ` `    ``int` `m = 0; ` ` `  `    ``// One by one put all even ` `    ``// bits to end ` `    ``for` `(``int` `x = n; x; x >>= 2) ` `    ``{ ` `        ``// If current last bit ` `        ``// is set, add it to ans ` `        ``if` `(x & 1) ` `           ``to_subtract += (1 << m); ` ` `  `        ``// Next shift position ` `        ``m += 2; ` `    ``} ` ` `  `    ``return` `n - to_subtract; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 30; ` `    ``cout << changeEvenBits(n) << endl; ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to change even ` `// bits to 0. ` `import` `java.util.*; ` `class` `GFG ` `{ ` `// Returns modified number with ` `// all even bits 0. ` `static` `int` `changeEvenBits(``int` `n) ` `{ ` `    ``// To store sum of bits ` `    ``// at even positions. ` `    ``int` `to_subtract = ``0``; ` ` `  `    ``// To store bits to shift ` `    ``int` `m = ``0``; ` ` `  `    ``// One by one put all even ` `    ``// bits to end ` `    ``for` `(``int` `x = n; x>``0``; x >>= ``2``) ` `    ``{ ` `        ``// If current last bit ` `        ``// is set, add it to ans ` `        ``if` `((x & ``1``) > ``0``) ` `        ``to_subtract += (``1` `<< m); ` ` `  `        ``// Next shift position ` `        ``m += ``2``; ` `    ``} ` ` `  `    ``return` `n - to_subtract; ` `} ` ` `  `// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `    ``int` `n = ``30``; ` `    ``System.out.println(changeEvenBits(n));  ` `    ``} ` `} ` `/* This code is contributed by Mr. Somesh Awasthi */`

## Python

 `# Python program to change even ` `# bits to 0. ` ` `  `# Returns modified number with ` `# all even bits 0. ` `def` `changeEvenBits(n): ` `     `  `    ``# To store sum of bits ` `    ``# at even positions. ` `    ``to_subtract ``=` `0` `  `  `    ``# To store bits to shift ` `    ``m ``=` `0` `  `  `    ``# One by one put all even ` `    ``# bits to end ` `    ``x ``=` `n ` `    ``while``(x): ` `     `  `        ``# If current last bit ` `        ``# is set, add it to ans ` `        ``if` `(x & ``1``): ` `           ``to_subtract ``+``=` `(``1` `<< m) ` `  `  `        ``# Next shift position ` `        ``m ``+``=` `2` `        ``x >>``=` `2` `  `  `    ``return` `n ``-` `to_subtract ` `  `  `# Driver code ` `n ``=` `30` `print` `changeEvenBits(n) ` ` `  `# This code is contributed by Sachin Bisht `

## C#

 `// C# program to change even ` `// bits to 0. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// Returns modified number with ` `    ``// all even bits 0. ` `    ``static` `int` `changeEvenBits(``int` `n) ` `    ``{ ` `         `  `        ``// To store sum of bits ` `        ``// at even positions. ` `        ``int` `to_subtract = 0; ` `     `  `        ``// To store bits to shift ` `        ``int` `m = 0; ` `     `  `        ``// One by one put all even ` `        ``// bits to end ` `        ``for` `(``int` `x = n; x > 0; x >>= 2) ` `        ``{ ` `             `  `            ``// If current last bit ` `            ``// is set, add it to ans ` `            ``if` `((x & 1) > 0) ` `            ``to_subtract += (1 << m); ` `     `  `            ``// Next shift position ` `            ``m += 2; ` `        ``} ` `     `  `        ``return` `n - to_subtract; ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 30; ` `         `  `        ``Console.Write(changeEvenBits(n));  ` `    ``} ` `} ` ` `  `// This code is contributed by nitin mittal. `

## PHP

 `>= 2) ` `    ``{ ` `         `  `        ``// If current last bit ` `        ``// is set, add it to ans ` `        ``if` `(``\$x` `& 1) ` `        ``\$to_subtract` `+= (1 << ``\$m``); ` ` `  `        ``// Next shift position ` `        ``\$m` `+= 2; ` `    ``} ` ` `  `    ``return` `\$n` `- ``\$to_subtract``; ` `} ` ` `  `    ``// Driver code ` `    ``\$n` `= 30; ` `    ``echo` `changeEvenBits(``\$n``) ; ` ` `  `// This code is contributed by nitin mittal ` `?> `

Output :

```10
```

## C++

 `#include ` `using` `namespace` `std; ` ` `  `int` `convertEvenBitToOne(``int` `n) { ` `    ``return` `(n & 0xaaaaaaaa); ` `} ` ` `  `int` `main() { ` `   ``int` `n = 30; ` `   ``cout << convertEvenBitToOne(n); ` `   ``return` `0; ` `} `

## Java

 `// Java program using Bitmask to  ` `// Change all even bits in a  ` `// number to 0 ` `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  `    ``static` `int` `convertEvenBitToOne(``int` `n) ` `    ``{ ` `        ``return` `(n & ``0xaaaaaaaa``); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main (String[] args) ` `    ``{ ` `        ``int` `n = ``30``; ` `        ``System.out.println(  ` `                    ``convertEvenBitToOne(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by anuj_67. `

## Python

 `def` `convertEvenBitToOne(n): ` `    ``return` `(n & ``0xaaaaaaaa``) ` ` `  `# Driver code ` `n ``=` `30` `print` `convertEvenBitToOne(n) ` ` `  `# This code is contributed by Sachin Bisht `

## C#

 `// C# program using Bitmask to  ` `// Change all even bits in a  ` `// number to 0 ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``static` `long` `convertEvenBitToOne(``int` `n) ` `    ``{ ` `        ``return` `(n & 0xaaaaaaaa); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main () ` `    ``{ ` `        ``int` `n = 30; ` `        ``Console.WriteLine(  ` `                    ``convertEvenBitToOne(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by anuj_67. `

## PHP

 ` `

Output :

```10
```

This article is contributed by RISHABH RAJ JHA . If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.