读书人

二进制中一的个数

发布时间: 2013-09-28 10:01:20 作者: rapoo

二进制中1的个数
前言最近会手写一些常考的面试题目,测试通过后会跟大家分享一下
移位法仅适应于正数的做法:
移位法就是每次判断n的二进制的最低位是否为1,时间复杂度为O(logn)

int quickOne(int n){int count = 0;while (n) {count ++;n = n & (n - 1);}return count;}






1楼chunyang2178昨天 13:29
最后一个要不要把int改为unsigned int ?
Re: zinss26914昨天 14:19
回复chunyang2178nn吗?不需要的,可以处理负数,负数是用补码表示,对负数同样适用
Re: chunyang2178昨天 15:34
回复zinss26914n额,是我晕了,这里用的是n&(n-1),不会产生多余的1

读书人网 >编程

热点推荐