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 bit 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(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 bit using 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 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 program to test above let n = 21;
document.write(setRightmostUnsetBit(n));
// This code is contributed by Manoj. </script> |
Output:
23
Time Complexity: O(1)
Auxiliary Space: O(1)
Recommended Articles