先把第k位移到最后一位
看个位是几,x>>k&1
#include<iostream>
using namespace std;
int main()
{
int n=10;
for(int i=3;i>=0;i--)
{
cout<<(n>>i&1);
}
//结果为1010
return 0;
}
lowbit(x)
lowbit函数——提取该数二进制原码中最后一位1所在的位置
lowbit(n) 公式:lowbit(n) = n & (-n)
#include<iostream>
using namespace std;
int lowbit(int x)
{
return x & -x ; //具体操作就是该数的二进制原码和补码(取反加一)进行与运算
}
int main()
{
int n=10;
cout<<lowbit(n)<<endl;//结果为2
return 0;
}