日期:2014-05-20 浏览次数:20835 次
System.out.println((((a >>> 31 == 0) && (b >>> 31 == 1))| (((a >>> 31)^(b >>> 31))==0)&&(((a-b)>>>31)==0))?"a>=b":"a<b");//同符号的相减;异号时a为正,则a>=b。
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]);
}
}
public class Test1 implements Comparable<Integer>{
private int a;
public Test1(){
}
public Test1(int c){
this.a=c;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=new Test1(-2147483648).compareTo(2147483647);
if(i>0){
System.out.println("a>b");
}else if(i<0){
System.out.println("a<b");
}else{
System.out.println("a=b");
}
}
public int compareTo(Integer i) {
// TODO Auto-generated method stub
if(a<i)
return -1;
if(a>i)
return 1;
return 0;
}
}
------解决方案--------------------
我们方法是重写compareTo方法而已,很简单。
------解决方案--------------------
成就啊!---变态的问题解决了 一个> < ==都没有用到
判断的时候建议用下正则---为了速度我用了equals判断
public static void main(String[] args) {
compareTwoInt(23, -45);
}
public static void compareTwoInt(int a, int b){
int c = 0;
//此处最好采用正则表达来判断a b 的类型0 ,正,负;为了方便我就将就下了,-我也采用了equalsji
//建议用正则表达
if(String.valueOf(a).equals("0")&&String.valueOf(b).equals("0")){
System.out.println("a等于b");
}
if(!String.valueOf(a).equals("0")&&String.valueOf(b).equals("0")){
if(String.valueOf(a).contains("-")){