gpt4 book ai didi

c++ - 关闭整数的最右边设置位

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:09 26 4
gpt4 key购买 nike

我只需要关闭最右边的设置位。我的方法是找到最右边的位置,然后关闭那个位置。我为此编写了这段代码..

int POS(int n)
{
int p=0;

while(n)
{
if(n%2==0)
{
p++;
}
else
{
break;
}
n=n/2;
}
return p;
}

int main(void)
{

int n=12;
int p = POS(n);
printf("%d \n", n&~(1<<p));

return 0;

}

有什么最简单的方法吗?

最佳答案

阅读http://www.geeksforgeeks.org/turn-off-the-rightmost-set-bit/

/* unsets the rightmost set bit of n and returns the result */
int fun(unsigned int n)
{
return n&(n-1);
}

关于c++ - 关闭整数的最右边设置位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com