二进制中1的个数

知识点:


整数12的二进制表示为1100,将其减一变为1011,将得到的结果和原树进行按位与,得到1000。

把一个整数减去1之后再和原来的整数做按位与,得到的结果相当于是把整数的二进制表示中最右边的一个1变成0,按照这个规律进行遍历,则函数的循环次数为二进制中一的个数次。

注意:负数要乘以个0xffffffff


扩展:求最大公约数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容