CI5.5-计算将整数A变为整数B需要改变的二进制位数

来源:互联网 发布:linux init.d 编辑:程序博客网 时间:2024/06/05 03:08

实现一个函数,计算将整数A变为整数B需要改变的二进制位数。

例子:

输入:31,14

输出:2

思路:将A和B异或,然后计算结果中1的个数。

#include <iostream>using namespace std;int CountOne(int c){int res = 0;for (int i = 0; i < 32; ++i){if (c & 1 == 1)++res;c >>= 1;}return res;}int BitsRequired(int a, int b){int c = a ^ b;return CountOne(c);}int main(){int a, b;while (cin >> a){cin >> b;cout << BitsRequired(a, b) << endl;}return 0;}


原创粉丝点击