class Transform {
public:
    int calcCost(int A, int B) {
        // write code here
        //需要改变的位的个数:即A和B不同值的位数(一个为0一个为1),都为0或1的话就不需要改变. 无论是A变B还是B变A.
        //所以用A^B可以得到全部有1的位就是需要改变的位。
        int needchange = A ^ B;
        int count = 0;
        while(needchange){//needchange为0时停止;
            needchange &= needchange - 1;//将为1的最低位变为0,并计算个数+1,这样消了多少个1就说明需要改变多少个位。
            count++;
        }

        return count;
    }
};