Write a program that sets the rightmost 0 bit of an integer.
Examples :
Input: 12 (00...01100) Output: 13 (00...01101) Input: 7 (00...00111) Output: 15 (00...01111)
If we add 1 to a number, all set bits after rightmost unset (or zero bit) become 0 and the rightmost unset bit becomes 1.
C++
// CPP program to set the rightmost unset bit#include<iostream>using namespace std; int setRightmostUnsetBit(int n) { // If all bits are set if ((n & (n + 1)) == 0) return n; // Set rightmost 0 bit return n | (n+1); } // Driver program to test above int main() { int n = 21; cout << setRightmostUnsetBit(n); return 0; } |
Java
//Java program to set the rightmost unset bitpublic class GFG { static int setRightmostUnsetBit(int n) { // If all bits are set if ((n & (n + 1)) == 0) return n; // Set rightmost 0 bit return n | (n+1); } //Driver program to test above public static void main(String[] args) { int n = 21; System.out.println(setRightmostUnsetBit(n)); }} |
Python 3
# Python3 program to set the # rightmost unset bit def setRightmostUnsetBit(n) : # If all bits are set if n & (n + 1) == 0 : return n # Set rightmost 0 bit return n | (n+1)# Driver code if __name__ == "__main__" : n = 21 print(setRightmostUnsetBit(n))# This code is contributed# by ANKITRAI1 |
C#
// C# program to set the rightmost unset bitusing System;public class GFG { static int setRightmostUnsetBit(int n) { // If all bits are set if ((n & (n + 1)) == 0) return n; // Set rightmost 0 bit return n | (n+1); } //Driver program to test above public static void Main() { int n = 21; Console.WriteLine(setRightmostUnsetBit(n)); } } |
PHP
<?php// PHP program to set the // rightmost unset bit function setRightmostUnsetBit($n) { // If all bits are set if (($n & ($n + 1)) == 0) return $n; // Set rightmost 0 bit return $n | ($n + 1); } // Driver Code$n = 21; echo setRightmostUnsetBit($n); // This code is contributed// by Shivi_Aggarwal?> |
Javascript
<script>// JavaScript program to set the rightmost unset bitfunction setRightmostUnsetBit(n){ // If all bits are set if ((n & (n + 1)) == 0) return n; // Set rightmost 0 bit return n | (n + 1); } // Driver program to test above let n = 21; document.write(setRightmostUnsetBit(n));// This code is contributed by Manoj.</script> |
23
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Find More here to that Topic: geeksforgeeks.org/set-the-rightmost-off-bit/ […]