处理二进制

    xiaoxiao2021-03-25  178

    题目描述

    世界上有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型数据,不需要进行十进制到二进制的转换。

    转载请注明原文地址: https://ju.6miu.com/read-2884.html

    最新回复(0)