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;
    }
};