文章

2

粉丝

35

获赞

0

访问

230

头像
输出0和1的个数,整形int 输入15 输出0的个数为28,1的个数为4,为什么0的个数是28
我要提问
发布于2024年3月6日 21:34
阅读数 105

#include<stdio.h>

int main(){
    int n=0;
    int one=0;
    int zero=0;
    scanf("%d",&n);
    while(n!=1){
       if(n%2==0){
              zero++;
           n=n/2;
           
       }else {
               one++;
               n=n/2;
              
       }
    
    }
    one=one+1;
    printf("count0=%d count1=%d",zero,one);
}

 

为什么0的个数是28?15的二进制不是1111吗?

登录查看完整内容


登录后发布评论

3 条评论
snake
2024年3月6日 22:27

因为int是32位,32-4=28

赞(0)

寥寥楠 : 回复 snake: 谢谢,这种是根据输出案例来判断吗,正常模二15的话是四个一没有零

2024年3月8日 14:40

snake : 回复 寥寥楠: 嗯,结合输出样例判断

2024年3月8日 14:51