题解 | #懂二进制#

懂二进制

https://www.nowcoder.com/practice/120e406db3fd46f09d55d59093f13dd8

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param m int整型
     * @param n int整型
     * @return int整型
     */
    public int countBitDiff (int m, int n) {
        // write code here
        int tempM = Math.abs(m);
        int tenpN = Math.abs(n);
        // 将m和n转化二进制
        StringBuffer sbA = new StringBuffer();
        StringBuffer sbB = new StringBuffer();
        while (tempM > 0) {
            sbA.append(tempM % 2);
            tempM = tempM / 2;
        }

        while (tenpN > 0) {
            sbB.append(tenpN % 2);
            tenpN = tenpN / 2;
        }
        // 统计不同位
        int count = 0;
        int len = sbA.length() > sbB.length() ? sbA.length() : sbB.length();
        for (int i = 0; i < len; i ++) {
            if (sbA.length() - 1 < i) {
                sbA.append('0');
            } else if (sbB.length() - 1 < i) {
                sbB.append('0');
            }
        }
        for (int i = 0; i < len; i ++) {
            if (sbA.charAt(i) != sbB.charAt(i)) {
                count ++;
            }
        }
        return count;
    }
}

全部评论

相关推荐

07-12 20:55
武汉大学 Java
程序员小白条:熟悉 Java、Python、Go 全能选手,这实习还是线上2个月,呃呃呃,没啥用,整个简历写的很差,也就是9爷的学历了
点赞 评论 收藏
分享
08-07 11:58
门头沟学院 Java
投实习的时候大厂只有你给面现在攻守易型了是吧挂的这么果断,连面都不给...
迷茫的大四🐶:实习是实习,正职是正职,两码事,实习也就几个月,卡的少,正职可就得狠狠地卡了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务