110,536
社区成员
发帖
与我相关
我的任务
分享
int a = 18;//二进制10010
bool s=IsOne(a,2);//判断第二位是否为1
bool IsOne(int b,int pos)
{
return (b>>(pos-1) & 0x01)==1;
}
Int32 n;
List<Int32> location = new List<int>();//存储从个位数开始为1的位数
Int32 bit = 0;//位数,从个位数开始
while (n != 0)
{
++bit;
//末位为1
if ((n & 1) == 1)
{
location.Add(bit);
}
n >>= 1;//右移,移除末位数
}
int a = 18;//二进制10010
int b = a>>1 & 0x01;//a右移1为是01001,和0x01(00001)求与运算是1,即右起第2位是1