利用位运算判断最后一位是不是1,如果不是的话就把A向右移一位,并把计数器向左移一位(即乘二)
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int A;
scanf("%d",&A);
while(A){
int temp=1;;
while(!(A&1)){
A>>=1;
temp<<=1;
}
printf("%d\n",temp);
scanf("%d",&A);
}
return 0;
}
本文介绍了一个使用位运算来判断整数最右侧是否为1的方法,并通过不断右移的方式找到第一个为1的位置。此方法适用于需要高效处理二进制位操作的场景。

被折叠的 条评论
为什么被折叠?



