本文概述
编写一个程序, 以使整数的最右边的设置位无效。
例子 :
Input: 12 (00...01100)
Output: 8 (00...01000)
Input: 7 (00...00111)
Output: 6 (00...00110)
推荐:请尝试以下方法{IDE}首先, 在继续解决方案之前。
令输入数字为n。 n-1将使所有位在最右边的设置位(包括设置位)之后翻转。因此, 执行n&(n-1)将给我们所需的结果。
C ++
#include <bits/stdc++.h>
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 " <<fun(n);
return 0;
}
//This code is contributed by rathbhupendra
C
#include <stdio.h>
// 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
的PHP
<?php
// unsets the rightmost set bit
// of n and returns the result
function fun( $n )
{
return $n & ( $n - 1);
}
// Driver Code
$n = 7;
echo "The number after unsetting the" .
" rightmost set bit " , fun( $n );
// This code is contributed by vt_m.
?>
输出:
The number after unsetting the rightmost set bit 6
如果你发现上述代码/算法有误, 请写评论, 或者找到解决同一问题的更好方法