一、求某数二进制第几位为几
1.将这一位移到最后(右移K位)
2.取余1
总结(n>>k%1)
int k;(第k位)
int n=10;
cin>>k;
cout<<n>>k%1;
//>>的意思是右移,例如1010>>3变为10
二、lowbit算法
作用:返回某数的最后一位。
原理:就是巧妙运用补码和反码的原理(x%-x=x%(~x+1))
这个算法实际上是一个树形结构
int lowbit(int x)
{
return x&-x;
}
1.将这一位移到最后(右移K位)
2.取余1
总结(n>>k%1)
int k;(第k位)
int n=10;
cin>>k;
cout<<n>>k%1;
//>>的意思是右移,例如1010>>3变为10
作用:返回某数的最后一位。
原理:就是巧妙运用补码和反码的原理(x%-x=x%(~x+1))
这个算法实际上是一个树形结构
int lowbit(int x)
{
return x&-x;
}