去除二进制最后的一个1.n&(n-1)

二进制中1的个数

http://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8

去除掉二进制最右边的一个1. n&(n-1)

    /**
     * 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
     * @param n 整数
     * @return 1的个数
     */
    public int NumberOf1(int n) {
        int res=0;
        while(n!=0){
            res++;
            n&=(n-1);
        }
        return res;

    }
全部评论

相关推荐

03-18 01:22
门头沟学院 Java
肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务