





















// 算法
inline int signof(int i)
{
return unsigned(i) >> (sizeof(int)*8-1);
}
int max(int a, int b)
{
int p[2];
p[0]=a;
p[1]=b;
return p[signof(a-b)];
}
/*解释
a & b 比较大小有三种情况
a > b (这种情况下 a-b>0)
a < b (这种情况下 a-b<0)
a = b (不用说了,再说就废话连篇了)
计算机编码中(int类型的)
>0 = 0XXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
<0 = 1XXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
这样就有一个特点,右移31bit就会出现 0,1
如果为 0 则 a 大
如果为 1 则 b 大
*/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。