懂二进制

2020-04-20 16:33:09 浏览数 (1)

题目描述 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 输入例子: 1999 2299

输出例子: 7


代码语言:javascript复制
public class Solution {
    /**
     * 获得两个整形二进制表达位数不同的数量
     * 
     * @param m 整数m
     * @param n 整数n
     * @return 整型
     */
    public int countBitDiff(int m, int n) {
        int data = 1;
        int cnt = 0;
        int tmp1,tmp2;
        for ( int i = 0 ; i < 32 ; i  ){
            tmp1 = m & data;
            tmp2 = n & data;
            if ( tmp1 != tmp2){
                cnt  ;
            }
            m = m >> 1;
            n = n >> 1;
        }
        return cnt;
    }
}

0 人点赞