博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二进制中1的个数
阅读量:2350 次
发布时间:2019-05-10

本文共 321 字,大约阅读时间需要 1 分钟。

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

思路:整数的二进制减1,会把最右边的从 1 开始所有数取反,比如1100 减一为1011

然后把这两个数做与运算 1100 & 1011 =1000 会发现少了一个1,于是可以做一个计数来计算1的个数

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

转载地址:http://homvb.baihongyu.com/

你可能感兴趣的文章
[think in java]知识点学习
查看>>
linux下线程调试 ulimit core
查看>>
linux 知识点拾遗
查看>>
java equal和==的区别
查看>>
c++中static的用法总结
查看>>
const的常见用法
查看>>
crontab使用手册
查看>>
虚继承与虚基类的本质
查看>>
函数式编程
查看>>
GitHub上整理的一些工具
查看>>
python range 与xrange的区别
查看>>
算法-最长递增子序列
查看>>
最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
查看>>
回文字符序列
查看>>
inline函数必须在头文件中定义吗?
查看>>
内存泄漏检查工具valgrind使用方法
查看>>
Solution of Codility
查看>>
java解析XML的四种方式及比较
查看>>
单例模式(java)详细
查看>>
策略模式(java)
查看>>