Mike's Blog

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在面试的时候遇到一题,题目如本文标题,当时没答出来,只想到可能会利用位运算,但具体代码没想出来,后来在网上也找有同样的问题,摘录其中一段代码:

int Max( int a , int b )
{
    
int MASK = 0x7fffffff;
    
int z = (a>>31- (b>>31+ (((a&MASK) - (b&MASK))>>31);
    z 
= (z+1)*(z+2)*(3-2*z)/6;
    
return z*a+(1-z)*b;
}
posted on 2005-09-02 17:03  又见Mike  阅读(371)  评论(0编辑  收藏  举报