首页 > 其他 > 详细

剑指offer-位运算相关题目总结

时间:2020-02-15 20:20:11      阅读:58      评论:0      收藏:0      [点我收藏+]

 

题目描述

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

 思路分析: 

利用1(1的二进制位为0001)依次与该数对应二进制的每一位进行与运算,每次结果为1表示对应二进制的该位为1,结果为0表示对应二进制的该位为0;

那么如何使1与二进制的每位进行比较呢?答案是让1每次比较完后做左移运算,则其二进制的1每次都能左移一位而其其余位为0

 还是比较巧妙地!

代码如下:

public class Solution {
    public int NumberOf1(int n) {
            int count=0;
        int flag=1;
        while(flag!=0){
            if((n&flag)!=0){
                count++;
            }
            flag=flag<<1;
        }
        return count;
    }
}

 

 

 

剑指offer-位运算相关题目总结

原文:https://www.cnblogs.com/pathjh/p/12313282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!