两个二进制数多少个位(bit)不同

class Solution {
public:
    /**
     * 获得两个整形二进制表达位数不同的数量
     * 
     * @param m 整数m
     * @param n 整数n
     * @return 整型
     */
    int countBitDiff(int m, int n) {
		int diff = m^n;//m与n亦或,不相同的置1
        int count = 0;
        while(diff)
        {
            diff = diff&(diff-1);
            count++;
        }
        return count;
    }
};

  

 

posted @ 2016-08-15 14:25  圆滚滚的小峰峰  阅读(531)  评论(0编辑  收藏  举报