华为OJ 初级:求int型数据在内存中存储时1的个数
2016-07-04 09:27
387 查看
题目如下:
下面总共记录了两种方法:
count1:使用Integer中的 toBinaryString方法,将十进制int型转为二进制String类型
count2:使用‘&’运算与 ‘>>>’ 运算
下面总共记录了两种方法:
count1:使用Integer中的 toBinaryString方法,将十进制int型转为二进制String类型
count2:使用‘&’运算与 ‘>>>’ 运算
import java.util.Scanner; public class Cont_IntToBin { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); int n = count2(input); System.out.print(n); scanner.close(); } private static int count(int num) { int n = 0; String str = Integer.toBinaryString(num); //将int型转换为二进制String类型 for (int i = 0; i < str.length(); i++) if (str.charAt(i) == '1') n++; return n; } private static int count2(int num){ //方法2使用'&'和右移'>>>'运算 int n = 0; while( num != 0){ n += num & 1; //当num中二进制字符有'1'时,和'1'进行'&'结果为1,从而可以计算总共有多少个1 num >>>= 1; //num右移,每次左边补0 } return n; } }
相关文章推荐
- 解放程序猿(媛)的双手—iOS UI自动化测试
- Plugin is too old,please update to a more recent version解决办法
- 混合应用开发:Phonegap VS AppCan
- 二叉树的深度(递归和非递归)---java实现
- DNS劫持
- 虚树详解+例子分析+模板
- 好用的composer命令
- 斐波那契额序列
- 【Android】app打包成apk文件以后,如何查看VersionCode、VersionName等版本信息
- Android studio 的使用心得
- Poj 1654 Area
- jenkins邮件模板
- Linq-插入insert
- Yslow23条规则
- 批量控制div下面某个元素的宽度
- 30分钟Git命令入门到放弃
- YII框架redis的配置
- 常用数据结构
- 工业触屏系统开发经验分享
- 全连接层解析(一)