java 判断数字二进制有几位_判断一个二进制数字有多少个1----java实现
这个题目会有多个解法:
需要判断n的二进制有几个1
first:通过n向右移位&1,如果n的最后为1,那么与1结果为1,(相信大家都会与运算,hashmap就是用与运算)以此来实现,循环判断有多少个1,结束条件为n=0;
second:上述方法有一个缺陷,就是当n为有符号数字时,才用n==0的结束条件会发生死循环,那么我们可以通过移位1来实现,也就是有每次比较去把1向左移,一次来比较
前两种属于常规做法,下面来说一种技巧性的做法
比如:n=1001,每次将n-1,那么第一次就是1000,使用n&(n-1)→1001&1000=1000,这是第一次计算,第二次1000&0111=0
两次运算,而1001中有两个1; 如果看不懂的可以自己写写,感受下,就能体会了;
上代码:
public void showOne(int n){
if(n==0){
System.out.println("0");
return;
}
int count=0;
while(n!=0){
count++;
n=n&(n-1);
}
System.out.println(count);
}
出处来自剑指offer
java 判断数字二进制有几位_判断一个二进制数字有多少个1----java实现相关推荐
- java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
[填空题]类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素.一个类的实现包括两部分:____和_____. 更多相关问题 [名词解释] 观叶树木 [单选] 开花时有浓郁香气的树种是 ...
- java未知对象调用其某个方法_引用一个类的属性或调用其方法,必须以这个类的对象为前缀。...
[多选题]根据<建设工程项目管理规范>(GB/T50326-20 17 )施工项目经理应履行的职责有( ) [判断题]数组作参数被使用时,数组名后必须加方括号 [判断题]方法中最多能有一个 ...
- java set第n位_数据结构与算法——常用数据结构及其Java实现
本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上.亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践一步总结到位. 常用数据结构 数组 数组 ...
- 用Java计算圆周率的十亿位_新世界纪录:谷歌将圆周率计算到 31 万亿位
为了挑战更精确的圆周率,谷歌工程师 Emma Iwao 在25台谷歌云的虚拟机上,执行专为圆周率设计的算法,计算出31万亿数字的圆周率. 3.1415926,相信不少人都背诵过这串数字,并将它代入算式 ...
- java判断时间是否超过24小时_判断两个日期是否超过24小时!
print?public class Test { public static void main(String[] args) { String date1="2013-06-24 12: ...
- java判断二维数组是否空_判断二维数组是否为空
在Java程序设计里面,相信大部分人都知道如何判断一个一维数组是否为空,示例如下: public int primeNumberCount(int[] array){ if(array==null|| ...
- java判断两个矩形是否相交_判断矩形相交以及求出相交的区域
问题:给定两个矩形A和B,矩形A的左上角坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),矩形B的左上角坐标为(Xb1,Yb1),右下角 坐标为(Xb2,Yb2). (1)设计一个算法,确定两 ...
- java中数组属于哪种类型_判断(2分) Java中数组的下标只能是各种整数数据类型
参考答案如下 判断比强度是材料轻质高强的指标. 中数组的只能种整当用户访问JSP文件时,对于HTML标签以及文本的输出形式是() 下标型下面选项中,使用post方式提交name="传智播客& ...
- JAVA中for循环缩制表位_用vim中的空格替换制表符
我想将tab转换为gVim中的空格. 我_vimrc下行添加到我的_vimrc : set tabstop=2 它可以在两个空格处停止,但它仍然看起来像是插入了一个tab键(我尝试使用h键来计算空格) ...
最新文章
- 海量秋招面试资料等你来拿!你离大厂也许并不远
- 《征服C指针》作者语录
- CI框架 守护进程nohup让PHP以常驻内存的形式执行订阅消息
- 在账户确定类型KOFI没有找到总账科目
- GDCM:将PAPYRUS 3.0文件转换为dcm文件的的测试程序
- 浅析 public static void main(String[] args)
- 谈通过测试与失败测试
- 走进 Cake for .NET
- IP地址与MAC地址的区别
- CV Code | 计算机视觉开源周报 20190701期
- 基于Matlab的跨孔CT胖射线追踪算法(三)
- 【前端周刊】20190606
- oracle 结构化语言查询 DML DDL DCL
- android 手势操作垂直滑动,Android-水平和垂直方向都可滑动的RecycleView
- 设计模式---工厂方法模式(c++实现)
- 俄罗斯方块c语言代码 vc 6.0,VC++6.0俄罗斯方块代码
- Viterbi算法(维特比算法)
- js 文件下载请求两种方式
- 【win7黑屏终结者】win7电脑登录账户后黑屏(只有鼠标箭头)问题
- 2-管理Audio焦点(Managing Audio Playback)