1.去平均值法:
int Max(int a, int b)
{
return (a+b+abs(a-b))/2;
//如果返回小者:
//return (a+b-abs(a-b))/2;
}
2.移位法
int Max(int a, int b)
{
int result[2] = {a,b}; //移位法只需判斷a-b的符號位即可,用數組來存,高明!
int flag = ((a-b)>>31) & 0x1;
return result[flag];
}
int Max(int a, int b)
{
int flag = ((a-b)>>31) & 0x1;
return a - (a-b)*flag; //運用flag是否爲0來進行加減,高明!
}