编写一个程序,以使整数的最右置位不置1。
例子 :
Input: 12 (00...01100)
Output: 8 (00...01000)
Input: 7 (00...00111)
Output: 6 (00...00110)
令输入数字为n。 n-1将使所有位在最右边的设置位(包括设置位)之后翻转。因此,执行n&(n-1)将给我们所需的结果。
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.
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
Javascript
PHP
输出 :
The number after unsetting the rightmost set bit 6