难倒是不难,倒是学到了一个巧妙的方法,加上对位操作的不熟悉,特此记录
class Solution{
public int NumOf1(int n){
int count=0;
int flag=1;
while(flag!=0){
if((flag&n)!=0){
count++;
}
flag = flag<<1;
}
return count;
}
class Solution{
public int NumOf1(int n){
int count=0;
while(n!=0){
count++;
n=n&(n-1);
}
return count;
}
}
本文介绍了两种计算整数二进制表示中1的数量的方法。第一种方法使用左移运算符逐位检查,第二种方法通过将数字与其减一后的结果进行与运算,巧妙地消除最低位的1,直至所有位上的1都被消除。这两种方法为二进制位操作提供了实用且高效的解决方案。
760

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



