这一道题关于到java的基础知识。
方法一:
位的运算。”|“,“&”,“^”。。。这一类的运算
代码如下
- int a=4,b=9;
- int[] tempArray={a,b};
- int temp=a-b;
- System.out.println(tempArray[temp>>>31]);
二进制中非负数的第一位用0表示。负数用1表示。而int 型占4个字节也就是32位二进制。
向右移动了31位后生成的新的二进制的值1或是0。如果是1说明后面的值大。反知另外个大
此文引自:http://leiwuluan.iteye.com/blog/388983
方法二:
- int getMaxNum(int a,int b){
- double x = (double)a;
- double y = (double)b;
- return (int)(x/2+y/2+Math.abs(x/2-y/2));
- }
方法三:
- int getMaxNum(int a,int b){
- int[] array=new int[a];
- try{
- //只要b比a大,数组越界,肯定会导致异常,否则b比a小
- //所以在catch模块中返回b,非异常返回a即可
- array[b]=0;
- }catch(Exception ex){
- return b;
- }
- return a;
- }