欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年10月20日 10:46:04   作者:阿貍遠(yuǎn)翔  
這篇文章主要介紹了java 取模與取余的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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

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

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

2.計(jì)算?;蛘哂鄶?shù): r = a - c * b

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

例如計(jì)算:-7 Mod 4

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

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

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

歸納:當(dāng)a和b符號(hào)一致時(shí),求模運(yùn)算和求余運(yùn)算所得的c的值一致,因此結(jié)果一致。

當(dāng)符號(hào)不一致時(shí),結(jié)果不一樣。求模運(yùn)算結(jié)果的符號(hào)和b一致,求余運(yùn)算結(jié)果的符號(hào)和a一致。

另外各個(gè)環(huán)境下%運(yù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

補(bǔ)充知識(shí):java中的除法和取余注意點(diǎn)

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

如:

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

2 小數(shù)除法中,除數(shù)為0,輸出一個(gè)Infinity常量。小數(shù)取余運(yùn)算中,除數(shù)為0,拋出一個(gè)NaN常量。浮點(diǎn)數(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語(yǔ)言中特有的數(shù),由Float 和 Double兩個(gè)封裝類提供,且不能把它作為一個(gè)普通數(shù)用于運(yùn)算中,如==運(yùn)算,NaN用于比較運(yùn)算中,不會(huì)顯示錯(cuò)誤,但都只輸出false。因此NaN只是通過調(diào)用isNaN()方法來判定是否一個(gè)東西是否數(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ù))即可進(jìn)行比較,POSITIVE_INFINITY(正無窮)和NEGATIE_INFINITY(負(fù)無窮),可用于比較邏輯運(yùn)算中。

如:

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ù)的正負(fù)符號(hào)完全取決于左操作數(shù),和作操作數(shù)的正負(fù)號(hào)一致。

如:

 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é)果為余。即對(duì)商截去小數(shù)位后的運(yùn)算。

如:

 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ū)別說明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java調(diào)用Hbase報(bào)錯(cuò)解決方法

    java調(diào)用Hbase報(bào)錯(cuò)解決方法

    這篇文章主要為大家介紹了java調(diào)用Hbase報(bào)錯(cuò)解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • SpringCloud開啟session共享并存儲(chǔ)到Redis的實(shí)現(xiàn)

    SpringCloud開啟session共享并存儲(chǔ)到Redis的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud開啟session共享并存儲(chǔ)到Redis的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java多種方法實(shí)現(xiàn)合并多個(gè)list對(duì)象列表

    Java多種方法實(shí)現(xiàn)合并多個(gè)list對(duì)象列表

    Java編程中,合并多個(gè)列表對(duì)象可以通過Stream?API或傳統(tǒng)循環(huán)方式實(shí)現(xiàn),使用Stream?API合并時(shí),利用flatMap方法將嵌套的List展平,再通過collect方法收集成一個(gè)新的列表,傳統(tǒng)循環(huán)則通過創(chuàng)建一個(gè)空的ArrayList,并通過遍歷每個(gè)列表將元素添加進(jìn)去
    2024-09-09
  • java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)

    java正則表達(dá)式匹配規(guī)則超詳細(xì)總結(jié)

    正則表達(dá)式并不僅限于某一種語(yǔ)言,但是在每種語(yǔ)言中有細(xì)微的差別,下面這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式匹配規(guī)則的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • spring自定義注解及使用方法詳細(xì)例子

    spring自定義注解及使用方法詳細(xì)例子

    這篇文章主要給大家介紹了關(guān)于spring自定義注解及使用方法的相關(guān)資料,Spring 是一個(gè)非常強(qiáng)大的框架,可以使用自定義注解來完成許多任務(wù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 三道java新手入門面試題,通往自由的道路--JVM

    三道java新手入門面試題,通往自由的道路--JVM

    這篇文章主要為大家分享了最有價(jià)值的3道JVM面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對(duì)hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下
    2021-07-07
  • java使用itext導(dǎo)出PDF文本絕對(duì)定位(實(shí)現(xiàn)方法)

    java使用itext導(dǎo)出PDF文本絕對(duì)定位(實(shí)現(xiàn)方法)

    下面小編就為大家?guī)硪黄猨ava使用itext導(dǎo)出PDF文本絕對(duì)定位(實(shí)現(xiàn)方法)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java中線程用法總結(jié)

    Java中線程用法總結(jié)

    這篇文章主要介紹了Java中線程用法,實(shí)例總結(jié)了java中線程的常見使用技巧,需要的朋友可以參考下
    2015-06-06
  • 解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題

    解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題

    這篇文章主要介紹了解決@JsonInclude(JsonInclude.Include.NON_NULL)不起作用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java讀取數(shù)據(jù)庫(kù)表的示例代碼

    Java讀取數(shù)據(jù)庫(kù)表的示例代碼

    這篇文章主要介紹了Java讀取數(shù)據(jù)庫(kù)表,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論