java不用比較符判斷大小

2021-06-23 08:22:41 字數 484 閱讀 3856

public static void main(string args)

int型別32位,正數的第一位為0,負數的第一位為1,所以把乙個正數右移31位就可以判斷這個數的正負。

另註:>>和》的區別

右移運算子》(有符號)

用來將乙個數的各二進位制位全部右移若干位.例如:a = a>>2,使a的各二進位制位右移兩位,移到右端的低位被捨棄,最高位則移入原來高位的值.

如:a = 00110111,則a>>2=00001101,b=11010011,則b>>2 = 11110100

右移一位相當於除2 取商,而且用右移實現除法比除法運算速度要快

無符號右移運算子》

用來將乙個數的各二進位制位無符號右移若干位,與運算子》相同,移出的低位被捨棄,但不同的是最高位補0,如a = 00110111,則a>>>2 = 00001101,b=11010011,則b>>>2 = 00110100

不用if比較兩個數大小

一 問題 有兩個變數a,b,不用 if switch或者其它判斷語句,找出兩個數中間比較大的 二 解決方案 方法1 取平均值法 大的為 a b abs a b 2 小的為 a b abs a b 2 int fmax1 int a,int b 方法2 不使用abs ab時,b a 0,所以前面為a ...

不用if比較兩個數大小

大的為 a b abs a b 2 小的為 a b abs a b 2 int fmax1 int a,int b ab時,b a 0,所以前面為a a b 後面為a b,那麼結果就是a int fmax2 int a,int b 如果取 a b 餘數不為0,則說明a b 這是個好方法,不過題目說了...

java日期大小比較

之前有面試到兩個日期的大小比較方式,現在整理一下幾種方法。例子 string begintime new string 2017 06 09 10 22 22 string endtime new string 2017 05 08 11 22 22 1 直接用date自帶方法before 和aft...