求最大值:
方案一:
int max = ((a + b)+ abs(a - b))/2
方案二:
int c =a - b; char *strs[2] = {"a Large ", "b Large "}; c = unsigned(c) >> (sizeof(int) * 8 - 1);
a, b交换:
方案一:
a = a + b; b = a - b; a = a - b;
这样做如果a和b的值很大时,很容易出现溢出。
方案二:
a = a ^ b; b = a ^ b; a = a ^ b;
这样做的原理是按位异或运算,按位异或运算符号“^”是双目运算符,其功能是参与运算的梁书各对应的二进制位相异或,当对应的二进制位相异或时,结果为1.