Related Articles

# Change all even bits in a number to 0

• Difficulty Level : Medium
• Last Updated : 06 Apr, 2021

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```

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``?>`

## Javascript

 ``
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

 ``

## Javascript

 ``
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.