# Toggle all odd bits of a number

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

 ` 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

 ``

Output :

`14`

Time Complexity : O(log n)

Space Complexity : O(1)

My Personal Notes arrow_drop_up