奇數性之謎

關於奇數,我們平常一般會使用如下方法去判斷:

public static boolean isOdd(int i){
return i%2==1;
}

但是這樣的代碼對於正整數來說是OK的,但是對於負整數來說是不行的。因爲返回將會是負整數。例如:
-3%2=-1;
總結一句話:上述判斷方式是不全面的;
所以,推薦使用以下兩種方式:
第一種:

public static boolean isOdd(int i){
return i%2!=0;
}

第二種:
使用位操作符AND(&)替代取餘操作符:

public static boolean isOdd(int i){
return (i&1)!=1;
}

第二個版本運行起來比第一個版本要快得多;
總結:
無論何時使用了取餘操作符,都要考慮操作數和結果的符號;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章