class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 获取最大值
* @param a int整型
* @param b int整型
* @return int整型
*/
int flip(int n)//本来负数是1, 非负是0,换一下
{
return n ^ 1;
}
int sign(unsigned int n)//非负 1, 负数是0
{
return flip(n >> 31);
}
int getMax(int a, int b) {
int c = a - b;
int sa = sign(a), sb = sign(b), sc = sign(c);
int diffAB = sa ^ sb;//一样 0,不一样:1
int sameAB = flip(diffAB);//互斥
//返回A的条件 a,b不同(diffAB = 1)且a非负(sa = 1)|| a,b相同(sameAB = 1)且 c非负(sc=1)
int returnA = diffAB * sa + sameAB * sc;
int returnB = flip(returnA);//a不满足就返回b
return a * returnA + b * returnB;
}
};