实现一个函数,计算将整数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; }