三点水、 2022-12-14 23:02 采纳率: 78.6%
浏览 11
已结题

求二进制中1的个数,进入死循环问题

求二进制中1的个数
#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int count=0;
    while(n>0){//此处进入死循环
        if(n&1){//以我的理解,二进制表示中最后一位如果都是1的话,所得结果应为1,而有一个零那么就该是0,是0即是false为什么会卡死在这里了呢?
            count++;
        }
        n>>1;
    }
    printf("%d\n",count);
    return 0;
}

为什么会进入死循环?
  • 写回答

1条回答 默认 最新

  • 浪客 2022-12-14 23:21
    关注

    n值没变。
    n >>= 1;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月15日
  • 已采纳回答 12月15日
  • 创建了问题 12月14日