美文网首页
输入二个整数m和n 改变m二进制几个数才能变成n?

输入二个整数m和n 改变m二进制几个数才能变成n?

作者: 霍运浩 | 来源:发表于2019-02-23 15:30 被阅读0次

    1,解题思路

    1,m和n进行异或运算 ,因为异或运算相同为0 不同为1 ,可以统计出m和n不同的二进制数
    比如 10的二进制是1010 13的二进制是1101 10异或13 得到1101 其中有多少1 说明m到n需要改变几位
    2 统计m和n异或的结果中的1,即m改变了几位。

    代码

    public static void main(String arg[]){
            
            int b=test(10,13);
            System.out.println(b);
            
        }
        public static int test(int m,int n){
            return NumberOf1(m^n);
        }
        
        public static int NumberOf1(int n) {
            int count=0;
           while(n!=0){
               n=n&(n-1);
               count++;
           }
            return count;
    }
    

    相关文章

      网友评论

          本文标题:输入二个整数m和n 改变m二进制几个数才能变成n?

          本文链接:https://www.haomeiwen.com/subject/thdpyqtx.html