码迷,mamicode.com
首页 > 其他好文 > 详细

说一说,求一个正整数的二进制中0的个数

时间:2016-06-08 10:41:20      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

昨天突然看到一个算法题:一个正整数a的二进制中0的个数;

话说这是个老题了,直观的算法就每次右移一位,直到0为止;代码就省略了;

仔细想想有更好的方案么?

就是这个题可以转换成一个正整数~a的二进制中1的个数; 求1的个数这个貌似就很熟悉了吧;

int num = 0;

b = ~a;

while(b){

    num++;

  b = b & (b-1);

}

是不是容易了许多呢

另外像java和python这种没有unsigned的语言要自己去转

b = ~a & 0x0ffff

说一说,求一个正整数的二进制中0的个数

标签:

原文地址:http://www.cnblogs.com/sparkling-ly/p/5569115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!