1059 有多少个1?

网友投稿 633 2022-08-28

1059 有多少个1?

1059 有多少个1?

Description 计算机中存储的整数都是按补码的型式,一个32位有符号整数的补码的定义为:如果x>=0,则x的补码等于x的二进制表示;如果x<0,那么x的补码为2^32+x的二进制表示。请根据给定的整数,求出它的补码包含有多少位为1。

输入 每行一个样例,为一个整数(可以用int表示)。

输出 每行输出一个对应样例的结果。

Sample Input 1 0 -1

Sample Output 1 0 32

Source ericxie 考察c语言位运算符的基础知识。先自己百度了解下

#include int main(){ int n; while(scanf("%d",&n)==1)//当输入不为空 { int count=0;//计数器 for(int i=1;i<=32;i++)//32位 { if(n&1)//判断n&1真假 { ++count;//真就加一 } n=n>>1;//n的二进制向右移动一位,最右端的位丢掉 } printf("%d\n",count); } return 0;}

写于2021年8月15日22:12

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:手把手带你解析蓝桥云课《算法很美》--2.8思维更重要:希尔排序
下一篇:1271Color
相关文章

 发表评论

暂时没有评论,来抢沙发吧~