2016校招真题编程-懂二进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016校招真题编程-懂二进制相关的知识,希望对你有一定的参考价值。

题目描述

世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 

输入例子:
1999 2299


输出例子:
7


解题思路:异或,除二取余


源代码:

package SuperHakceMainPackage;

import java.util.Scanner;

public class SuperHakceMian {
	int countBitDiff(int n,int m){
		return n ^ m;
	}
	int findNumber(int m){
		int number = 0;
		int flag;
		while(m != 0){
			flag = m % 2;
			m = m / 2;
			if(flag == 1){
				number ++;
			}
		}
		return number;
	}
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		SuperHakceMian superHakceMian = new SuperHakceMian();
		int n = in.nextInt();
		int m = in.nextInt();
		System.out.println(superHakceMian.findNumber(superHakceMian.countBitDiff(n,m)));
	}
}


本文出自 “SuperHakce” 博客,请务必保留此出处http://superhakce.blog.51cto.com/6671637/1898838

以上是关于2016校招真题编程-懂二进制的主要内容,如果未能解决你的问题,请参考以下文章

2016校招真题之最大差值

2016校招真题之小球的距离

2016校招真题之数组单调和

2016校招真题之串的模式匹配

nowcoder-2017校招真题保留最大的数

#yyds干货盘点# 名企真题专题:懂二进制