处理二进制

来源:互联网 发布:psvita 电池 淘宝 编辑:程序博客网 时间:2024/04/30 08:17

题目描述

世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?

答案

class Solution {public:    /**     * 获得两个整形二进制表达位数不同的数量     *     * @param m 整数m     * @param n 整数n     * @return 整型     */    int countBitDiff(int m, int n) {        int result=0;        int dif = m^n;        while(dif != 0){            result += (dif&1)&1;            dif = dif>>1;        }        return result;    }};

分析

在C++中的位运算符‘&’、‘|’、‘~’、‘^’都可以直接用于int型数据,不需要进行十进制到二进制的转换。

0 0
原创粉丝点击