av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

java 取模與取余的區(qū)別說明

瀏覽:3日期:2022-08-22 13:41:30

取模與取余的區(qū)別

對于整型數(shù)a,b來說,取模運算或者求余運算的方法都是:

1.求 整數(shù)商: c = a/b;

2.計算模或者余數(shù): r = a - c * b

求模運算和求余運算在第一步不同: 取余運算在取c的值時,向0 方向舍入(fix()函數(shù));而取模運算在計算c的值時,向負無窮方向舍入(floor()函數(shù))。

例如計算:-7 Mod 4

那么:a = -7;b = 4;

第一步:求整數(shù)商c,如進行求模運算c = -2(向負無窮方向舍入),求余c = -1(向0方向舍入);

第二步:計算模和余數(shù)的公式相同,但因c的值不同,求模時r = 1,求余時r = -3。

歸納:當a和b符號一致時,求模運算和求余運算所得的c的值一致,因此結(jié)果一致。

當符號不一致時,結(jié)果不一樣。求模運算結(jié)果的符號和b一致,求余運算結(jié)果的符號和a一致。

另外各個環(huán)境下%運算符的含義不同,比如c/c++,java 為取余,而python則為取模。

Java程序示例:

public static void main(String[] args) { System.out.println('-3,2取模'+Math.floorMod(-3,2)); System.out.println('-3,2取余'+ -3%2); System.out.println('3,-2取模'+Math.floorMod(3,-2)); System.out.println('3,2取余'+ 3%-2); }

結(jié)果:

-3,2取模=1

-3,2取余=-1

3,-2取模=-1

3,2取余=1

補充知識:java中的除法和取余注意點

1 整數(shù)除法中,除數(shù)為0,拋出一個算術(shù)異常ArithmeticException。整數(shù)取余運算中,除數(shù)為0,拋出一個ArithmeticException異常。

如:

class Test { public static void main(String args[]) { System.out.println(3/0); System.out.println(3%0); } }

2 小數(shù)除法中,除數(shù)為0,輸出一個Infinity常量。小數(shù)取余運算中,除數(shù)為0,拋出一個NaN常量。浮點數(shù)有無限值和Nan(非數(shù)值)概念。

如:

class Test { public static void main(String args[]) { System.out.println(3.0/0); System.out.println(3.0%0); } }

3 NaN是java語言中特有的數(shù),由Float 和 Double兩個封裝類提供,且不能把它作為一個普通數(shù)用于運算中,如==運算,NaN用于比較運算中,不會顯示錯誤,但都只輸出false。因此NaN只是通過調(diào)用isNaN()方法來判定是否一個東西是否數(shù)值;但在equals()方法中比較的是內(nèi)容,就看具體數(shù)據(jù)了。

如:

class Test { public static void main(String args[]) { double x = 64.0; double y = 0.0; System.out.println(x%y == x%y); } }

顯示:false

如:

Double a = new Double(Double.NaN); Double b = new Double(Double.NaN); if(Double.NaN == Double.NaN) System.out.println('True'); else System.out.println('False'); if(a.equals(b)) System.out.println('True'); else System.out.println('False');

顯示:false,true

而Infinity(極限數(shù))即可進行比較,POSITIVE_INFINITY(正無窮)和NEGATIE_INFINITY(負無窮),可用于比較邏輯運算中。

如:

class Test { public stativ void main(String args[]) { System.out.println(Float.NaN == Float.NaN); System.out.println(Float.POSITIVE_INFINITY == Float.POSITIVE_INFINITY) } }

顯示:false,true

3 在取余操作中,余數(shù)的正負符號完全取決于左操作數(shù),和作操作數(shù)的正負號一致。

如:

class Test { public static void main(String args[]) { byte x = -64; byte y = -6; System.out.println(x/y + ' ' + x%y); x = 64; System.out.println(x/y + ' ' + x%y); } }

顯示:10,-4 -10 4

4 小數(shù)取余,用左邊的操作數(shù)連續(xù)減去右邊的操作數(shù),直到結(jié)果小于右邊的操作數(shù),此結(jié)果為余。即對商截去小數(shù)位后的運算。

如:

class Test { public static void main(String args[]) { double x = 64.5; double y = 6.0; System.out.println(x/y + ' ' + x%y); } }

顯示:10.75,4.5

以上這篇java 取模與取余的區(qū)別說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 激情久久久久 | 操碰在线视频 | 亚洲天堂中文字幕 | 日韩一区二区在线观看视频 | 大香伊人网 | 三级黄色片 | 一级黄色片视频 | 亚洲另类视频 | 午夜在线观看视频网站 | 欧美亚洲三级 | 天堂a√| 国产伦精品一区二区三区在线 | 色人人| 中文字字幕在线中文 | 麻豆中文字幕 | 一级黄片毛片 | 国产资源在线观看 | 成人黄色一级片 | 亚洲黄色一级 | 欧美综合色| 日韩视频免费大全中文字幕 | 成人深夜福利 | 日韩大片在线观看 | 国产一区二区三区在线 | 久久久青草 | 日韩免费一区 | 韩日欧美 | 精品第一页 | 蜜桃综合网| 日韩一级av毛片 | 丁香六月激情 | 中文字幕99 | www.com国产 | 国产精品一区二区在线播放 | 精品一区二区三区免费看 | 成人黄色在线观看 | 久久精品欧美一区 | av永久免费 | 欧美一级黄色录像 | 老司机精品福利视频 | www.亚洲国产 |