Java 求餘操作符

2021-07-25 06:57:38 字數 1517 閱讀 8532

百分號(%)是求餘操作符。22%5即從22中拿走5,再拿走5...不夠拿走,就餘下了4。**放在:

package semantics.statement;

public class arithmeticopdemo15 / 4.0 = 3.75

15 % 4.0 = 3.0

7 % 2.2 = 0.39999999999999947

雖然15 % 4.0 比較理想,但是7 % 2.2不是我們希望的0.4,解釋起來也麻煩。

如果兩個運算元都是正整數,如同還沒有學過小數的小朋友的計數方式。這是常用的方式,

13/ 5 = 2

13 % 5 = 3

2 % 5  = 2

有奇葩問:13 / 5.0  = 2.6,那麼餘數是不是2.6的小數點後面的6。

我們只能夠說,13 / 5.0  = 2.6,的確13 / 5  = (int)math.floor(13 / 5.0),即2,你在這一步是對的,

那麼,餘數13 % 5 = 13- (13 / 5)*5 = 13-2*5 =3

整數除法遵循規則:

(x/y)*y + x %y == x

x %y = x - (x/y)*y

如果負數參與計算,x/y 的結果很容易理解,可以將符號先寫出來。

pln("-13/ 5 = "+ -13 / 5);     //  -2

pln("13/ -5 = "+ 13 / -5);     //  -2

pln("-13/ -5 = "+ -13 / -5);  // 2

但是,從x %y = x - (x/y)*y 可知,

-13% 5 = -13 - (-2) *5 = -13+10 = -3

13% -5 = 13 - (-2) *(-5) = 13 -10 = 3

-13%-5  = -13 -  2*(-5) = -13 +10 = -3

雖然不難,但是一會3一會-3,程式猿通常很懶的,不希望搞這種東西。所以,

當%的乙個或兩個運算元是負數時,理解起來並不直觀,因而應避免在負數時使用%。

求餘操作時,0是個好東西,如同c語言中的0. 判斷i是否偶數,使用if(i%2==0);判斷i是否奇數數,不要if(i%2==1) ,因為還有i%2== -1。

例如列印[-1,6]之間的奇數:

static void remainderop()             

system.out.println("i =" + i);

}}

i =-1

i =1

i =3

i =5

如果是**

static void remainderop()

}}

i =1

i =3

i =5

java 位操作符

位運算的應用場景 因為位運算的運算效率比直接對數字進行加減乘除高很多,所以當出現以下情景且對運算效率要求較高時,可以考慮使用位運算。情況1 輸入乙個int型的正整數,計算出該int型資料在記憶體中儲存時1的個數。例如輸入5,因為5 的二進位制表示為101,所以輸出為2.解題思路 普通方法是將5轉換成...

Java 移位操作符

左移運算子,按照操作符右側指定的位數將操作符左邊的運算元向左移動 在低位補零 例如 num 1,相當於num乘以2 左移的規則只記住一點 丟棄最高位,0補最低位 運算規則 按二進位制的形式把所有數字向左移動對應的位數,高位移出 捨棄 高低位的空位補0.如果移動的位數超過了該型別的最大位數,編譯器會對...

java位操作符

無符號右移位操作符 在將bit串右移位時,從bit串的最左邊填充0,這和帶符號右移位操作符 不同。在將bit串右移位時,從bit串的最左邊填充原來最左邊的位。也就是說,bit串原來最左邊的位是符號位,如果為1,則在帶符號右移時最左邊始終填充1 如果為0,則在帶符號右移時最左邊始終填充0。移位操作符的...