lowbit函数求解
lowbit这个函数的功能就是求某一个数的二进制表示中最低的一位1,举个例子,x = 6,它的二进制为110,那么lowbit(x)就返回2,因为最后一位1表示2
lowbit函数求解有以下两种方式。
方式一:先消掉最后一位1,然后再用原数减去消掉最后一位1后的数,答案就是lowbit(x)的结果;
方法二:原数与原数的相反数进行相与操作。(解释的话如果学过计算机组成原理之类的很容易明白,)负数在计算机中以补码的形式存储。
代码一:
int lowbit(int n)
{
return n-(n&(n-1));
}
代码二:
int lowbit(int n)
{
return n&-n;
}