一道面试题,比较基础~~~~
题目就是,不用if,?,switch等判断关键字,如何判断a,b中较大的一个值
我看标准答案是这样子的:
void fn2(int a , int b)
{
int c = a - b;
int re[2];
re[0] = a;
re[1] = b;
c = unsigned(c) >> (sizeof(int) * 8 - 1);
cout<<re[c]<<" is bigger!!!"<<"\n";
}
请问大家怎么解释啊,为什么要转换成无符号的整形后,又左移31位啊???