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校招真题编程-懂二进制的主要内容,如果未能解决你的问题,请参考以下文章