【微软100题】输入一个整数,求该整数的二进制表达中有多少个1
2017-08-13 17:09
253 查看
package test; /** 整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 比如输入10,因为其二进制表示为1010,有两个1。因此输出2。 分析: 方法一:把十进制转换成二进制字符数组。遍历该数组,推断1的个数。 方法二:对于一个int n, n&1的结果就是n转化成二进制数后的最后一位的结果。 考察了位运算 包含微软在内的非常多公司都曾採用过这道题。 * @author Zealot * */ public class MS_28 { private int getNum1(int i) { int reVal = 0; String s =Integer.toBinaryString(i); char[] chars = s.toCharArray(); for(char c: chars) { if(c=='1'){ reVal++; } } return reVal; } private int getNum2(int i1) { int count=0; while(i1!=0) { if((i1&1)==1) { count++; } i1 = i1>>1; } return count; } public static void main(String[] args) { MS_28 ms28 = new MS_28(); System.out.println(ms28.getNum2(10)); } }
相关文章推荐
- 【微软100题】输入一个整数,求该整数的二进制表达中有多少个1
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1
- 每天学习一算法系列(26)(输入一个整数,求该整数的二进制表达中有多少个1)
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- PHP 输入一个整数,求该整数的二进制表达中有多少个1
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 如何获得一个整数的二进制表达中有多少个1?
- 1.输出一个整数的每一位。2. 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 1.写一个函数返回参数二进制中 1 的个数;2..获取一个数二进制序列中所有的偶数位和奇数位;3. 输出一个整数的每一位;4.两个int整数的二进制表达中,有多少个位不同
- 输出一个整数的每一位。两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 微软面试100题之20题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- 4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 【微软100题】输入一个表示整数的字符串,把该字符串转换成整数并输出。 例如输入字符串"345",则输出整数345
- Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 1.编程实现: 两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 输入一个整数,求该整数的二进制表示中有多少个1