# 算法设计：关闭最右边的设置位

2021年3月15日09:08:51 发表评论 377 次浏览

## 本文概述

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

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

## 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``