刚读了老紫竹的blog: 不用比较运算符,判断int型的a,b两数的大小,考虑溢出问题.
自己试着实现了一下,用的是个苯法子 -- 把数值部分转换成0或1,再跟sign-bit整合。 谁还有更好的算法? 不妨share一下。
我是用Groovy实现的,基本上调用的都是Java的API,在JVM上同样是BYTECODE,就算是Java的*等价*代码吧。如大家要求的话,我可以把它转成纯Java code。
PS: 我的实现在int compare3(),老紫竹原算法的groovy实现是int compare2(),int compare1()是不考虑溢出的简单实现。
运行结果: