日期:2014-05-20 浏览次数:20665 次
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("-")){