Toggle all odd bits of a number
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)
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem