Open In App

Change all even bits in a number to 0

Improve
Improve
Like Article
Like
Save
Share
Report

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 <bits/stdc++.h>
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 */


Python3





C#





PHP





Javascript




<script>
 
// js program to change even
// bits to 0.
 
// Returns modified number with
// all even bits 0.
function changeEvenBits(n)
{
     
    // To store sum of bits
    // at even positions.
    let to_subtract = 0;
 
    // To store bits to shift
    let m = 0;
 
    // One by one put all even
    // bits to end
    for (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
    n = 30;
    document.write( changeEvenBits(n) );
 
// This code is contributed by sravan kumar
 
</script>


Output

10

Time Complexity – O(log n)

Space Complexity – O(1)

Method 2: (Bit masking)

C++




#include <bits/stdc++.h>
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.


Python3




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




<?php
// PHP program using Bitmask to
// Change all even bits in a
// number to 0
 
function convertEvenBitToOne($n)
{
    return ($n & 0xaaaaaaaa);
}
 
// Driver Code
$n = 30;
echo convertEvenBitToOne($n);
 
// This code is contributed by anuj_67.
?>


Javascript




<script>
 
// java script program using Bitmask to
// Change all even bits in a
// number to 0
 
function convertEvenBitToOne(n)
{
    return (n & 0xaaaaaaaa);
}
 
// Driver Code
n = 30;
document.write(convertEvenBitToOne(n));
// This code is contributed by sravan kumar
 
</script>


Output

10

Time Complexity – O(1)

Space Complexity – O(1)

 



Last Updated : 22 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads