日期:2014-05-20  浏览次数:20626 次

如何求两个int型的最大值
两个整型数,不准用if 、switch 、?:等判断语句求出两者最大值。
不能使用api

------解决方案--------------------
不用比较运算符得到2个数字的更大值

我自己只找到2个方法。
------解决方案--------------------
int max=x*(1-((x-y)>>>31))+y*((x-y)>>>31);

这个没有问题了.
------解决方案--------------------
Java code
public class Bigger {   
    public static void main(String args[]){   
        int a = -2147483648;   
        int b = 2147483647;   
           
        String[] strArray = {"a>=b", "a<b"};   
                   
        int i = (int)((long)a-(long)b >>> 63);   
           
        System.out.println(strArray[i]);   
    }   
}  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/justinavril/archive/2009/04/29/4138182.aspx