首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

二进制中一的个数

2013-09-28 
二进制中1的个数前言最近会手写一些常考的面试题目,测试通过后会跟大家分享一下移位法仅适应于正数的做法:

二进制中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

热点排行