不用比较运算符及循环控制语句,判断int型的a、b两数的大小

2014-11-23 22:57:48 · 作者: · 浏览: 5

看到这个题目的时候,我当时想到的,就是首先进行a-b,然后判断最高的符号位是1还是0。。我想大家也都会想到这一点:

int max(int a, int b)
{
int max[2] = { a, b };
return max[((a - b)&0x80000000) >> 31 ]; //与运算,将最高位的后面31位全部置为0,右移31位取出符号位
}