我要计算一个数的二进制位有几个1,有哪位dl帮我看看我写的哪里出问题了呢?

img


这里我的思路是:a&(按位与)1是否等于1,来验证a的二进制位的最后一位是否为1,如果为1,则执行一次右移,且计数一次,接着验证第二位。

不要使用a=a>>1
不要去改a的值
(a>>i) & 1就行了
-=-=-=
这都不是重点
主函数是main,你写成了mian,这能运行才怪

你的main写错了呀😂
不过你的算法漏洞注意正负号问题,你定义的int是有符号的那么如果a为负数那么结果可能会多一个1.

看上去没有问题。具体出现什么问题了呢