Skip to content
登录后刷题更便捷

二进制中 1 的个数

难度:
题目:

输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。

思路:

一个不为 0 的整数的二进制表示,一定会有一位为 1。我们找到最右边的一位 1,当我们将整数减去 1 时,最右边的一位 1 变为 0,它后面的所有位都取反,因此将减一后的值与原值相与,我们就会能够消除最右边的一位 1。因此判断一个二进制中 1 的个数,我们可以判断这个数可以经历多少次这样的过程。

如:1100&1011=1000

内容仅供参考,难免有不恰当的地方,如果有问题欢迎及时反馈
部分内容来自网络,如果不慎侵犯您的权益,请联系我们,以便及时删除侵权内容