# Turn off the rightmost set bit

Write a program that unsets the rightmost set bit of an integer.

Examples :

```Input:  12 (00...01100)
Output: 8 (00...01000)

Input:  7 (00...00111)
Output: 6 (00...00110)
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Let the input number be n. n-1 would have all the bits flipped after the rightmost set bit (including the set bit). So, doing n&(n-1) would give us the required result.

## C++

 `#include ` `using` `namespace` `std; ` ` `  `// unsets the rightmost set bit  ` `// of n and returns the result  ` `int` `fun(unsigned ``int` `n)  ` `{  ` `    ``return` `n & (n - 1);  ` `}  ` ` `  `// Driver Code  ` `int` `main()  ` `{  ` `    ``int` `n = 7;  ` `    ``cout<<``"The number after unsetting the"``;  ` `    ``cout<<``" rightmost set bit "``<

## C

 `#include ` ` `  `// unsets the rightmost set bit ` `// of n and returns the result ` `int` `fun(unsigned ``int` `n) ` `{ ` `    ``return` `n & (n - 1); ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 7; ` `    ``printf``(``"The number after unsetting the"``); ` `    ``printf``(``" rightmost set bit %d"``, fun(n)); ` `    ``return` `0; ` `} `

## Java

 `// Java program to unset the ` `// rightmost set bit of an integer. ` ` `  `class` `GFG { ` ` `  `    ``/* unsets the rightmost set bit ` `     ``of n and returns the result */` `    ``static` `int` `fun(``int` `n) ` `    ``{ ` `        ``return` `n & (n - ``1``); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String arg[]) ` `    ``{ ` `        ``int` `n = ``7``; ` `        ``System.out.print(``"The number after unsetting "` `                         ``+ ``"the rightmost set bit "` `+ fun(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by Anant Agarwal. `

/div>

## Python3

 `# unsets the rightmost set bit ` `# of n and returns the result  ` `def` `fun(n): ` ` `  `     ``return` `n & (n``-``1``) ` ` `  `# Driver code ` ` `  `n ``=` `7` `print``(``"The number after unsetting the rightmost set bit"``, fun(n)) ` ` `  `# This code is contributed ` `# by Anant Agarwal. `

## C#

 `// C# program to unset the ` `// rightmost set bit of an integer. ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``/* unsets the rightmost set bit ` `    ``of n and returns the result */` `    ``static` `int` `fun(``int` `n) ` `    ``{ ` `        ``return` `n & (n - 1); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 7; ` `        ``Console.Write(``"The number after unsetting "` `                      ``+ ``"the rightmost set bit "` `+ fun(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007 `

## PHP

 ` `

Output :

```The number after unsetting the rightmost set bit 6
```

Please write comments if you find the above code/algorithm incorrect, or find better ways to solve the same problem

This article is attributed to GeeksforGeeks.org

## tags:

Bit Magic Bit Magic

code

load comments