2016小米-懂二进制-Java

来源:互联网 发布:上汽进出口 知乎 编辑:程序博客网 时间:2024/05/22 19:34
/** * 题目描述 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?  * 示例1 输入  * 1999 2299  * 输出  * 7 *  * @author 崔洪振367 * @version 创建时间:2017年6月30日 下午10:34:53 * 解题思路:将两个数逐位相与,如果不等,则计数器加1. */public class 懂二进制 {/** * 获得两个整形二进制表达位数不同的数量 * @param m 整数m * @param n 整数n * @return 整型 */public static void main(String[] args){System.out.println(countBitDiff(1999, 2299));}public static int countBitDiff(int m, int n) {int cal = 1;int a;int b;int count = 0;//在32位的机器中,整数的位数有32位,因此循环32计算即可for(int i=0; i<31; i++){a = m&cal;b = n&cal;if(a!=b){count++;}m = m>>1;n = n>>1;}return count;}}

原创粉丝点击