Skip to content
Related Articles

Related Articles

Toggle all odd bits of a number

View Discussion
Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 27 May, 2022

Given n number, the task is to toggle odd bit of the number.
Examples: 
 

Input : 10
Output : 15
binary representation 1 0 1 0
after toggle          1 1 1 1 

Input : 20
Output : 1
binary representation 1 0 1 0 0
after toggle          0 0 0 0 1

 

1. First generate a number that contains odd position bits. 
2. Take XOR with the original number. Note that 1 ^ 1 = 0 and 1 ^ 0 = 1.
Let’s understand this approach with below code. 
 

C++




// Toggle all odd bit of a number
#include <iostream>
using namespace std;
  
// Returns a number which has all odd
// bits of n toggled.
int evenbittogglenumber(int n)
{
    // Generate number form of 101010...
    // ..till of same order as n
    int res = 0, count = 0;
    for (int temp = n; temp > 0; temp >>= 1) {
  
        // if bit is odd, then generate
        // number and or with res
        if (count % 2 == 0)
            res |= (1 << count);     
  
        count++;
    }
  
    // return toggled number
    return n ^ res;
}
  
// Driver code
int main()
{
    int n = 11;
    cout << evenbittogglenumber(n);
    return 0;
}

Java




// Toggle all odd bit of a number
 
import java.io.*;
 
class GFG {
    // Returns a number which has all odd
    // bits of n toggled.
    static int evenbittogglenumber(int n)
    {
        // Generate number form of 101010...
        // ..till of same order as n
        int res = 0, count = 0;
        for (int temp = n; temp > 0; temp >>= 1) {
       
            // if bit is odd, then generate
            // number and or with res
            if (count % 2 == 0)
                res |= (1 << count);     
       
            count++;
        }
       
        // return toggled number
        return n ^ res;
    }
       
    // Driver code
    public static void main(String args[])
    {
        int n = 11;
        System.out.println(evenbittogglenumber(n));
    }
}
 
/*This code is contributed by Nikita tiwari.*/
     
    

Python3




# Python3 code for Toggle all odd bit of a number
 
# Returns a number which has all odd
# bits of n toggled.
def evenbittogglenumber(n) :
     
    # Generate number form of 101010...
    # ..till of same order as n
    res = 0; count = 0; temp = n
     
    while(temp > 0 ) :
         
        # If bit is odd, then generate
        # number and or with res
        if (count % 2 == 0) :
            res = res | (1 << count)    
 
        count = count + 1
        temp >>= 1
     
     
    # Return toggled number
    return n ^ res
     
 
# Driver code
if __name__ == '__main__' :
     
    n = 11
    print(evenbittogglenumber(n))
 
 
# This code is contributed by Nikita Tiwari.

C#




// C# code for Toggle all odd bit of a number
using System;
 
class GFG {
     
    // Returns a number which has all odd
    // bits of n toggled.
    static int evenbittogglenumber(int n)
    {
         
        // Generate number form of 101010...
        // ..till of same order as n
        int res = 0, count = 0;
         
        for (int temp = n; temp > 0; temp >>= 1)
        {
        
            // if bit is odd, then generate
            // number and or with res
            if (count % 2 == 0)
                res |= (1 << count);     
        
            count++;
        }
        
        // return toggled number
        return n ^ res;
    }
        
    // Driver code
    public static void Main()
    {
         
        int n = 11;
         
        Console.WriteLine(evenbittogglenumber(n));
    }
}
  
// This code is contributed by Anant Agarwal.

PHP




<?php
// php implementation of Toggle
// all odd bit of a number
 
// Returns a number which has
// all odd bits of n toggled.
function evenbittogglenumber($n)
{
     
    // Generate number form of 101010...
    // ..till of same order as n
    $res = 0;
    $count = 0;
    for ($temp = $n; $temp > 0; $temp >>= 1)
    {
 
        // if bit is odd, then generate
        // number and or with res
        if ($count % 2 == 0)
            $res |= (1 << $count);    
 
        $count++;
    }
 
    // return toggled number
    return $n ^ $res;
}
 
    // Driver code
    $n = 11;
    echo evenbittogglenumber($n);
 
// This code is contributed by mits
?>

Javascript




<script>
 
// JavaScript program Toggle all odd bit of a number
  
    // Returns a number which has all odd
    // bits of n toggled.
    function evenbittogglenumber(n)
    {
        // Generate number form of 101010...
        // ..till of same order as n
        let res = 0, count = 0;
        for (let temp = n; temp > 0; temp >>= 1) {
         
            // if bit is odd, then generate
            // number and or with res
            if (count % 2 == 0)
                res |= (1 << count);     
         
            count++;
        }
         
        // return toggled number
        return n ^ res;
    }
 
// Driver code
         
        let n = 11;
        document.write(evenbittogglenumber(n));
                   
</script>

Output : 

14

Time Complexity : O(log n)

Space Complexity : O(1)
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!