Java中的相除(/)和取余(%)的實(shí)現(xiàn)方法
取模運(yùn)算與取余運(yùn)算兩個(gè)概念有重疊的部分但又不完全一致。主要的區(qū)別在于對(duì)負(fù)整數(shù)進(jìn)行除法運(yùn)算時(shí)操作不同。
對(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方向舍入;而取模運(yùn)算在取c值時(shí),是向負(fù)無(wú)窮方向舍入
各個(gè)環(huán)境下運(yùn)算符%的含義不同,C/C++,Java為取余,python為取模
Java取余運(yùn)算規(guī)則如下:
a%b = a - (a/b)*b
讓我們先看一段代碼:
public class Division_remainder {
public static void main(String[] args) {
int a = 13 / 5;
int b = 13 % 5;
int c = 5 / 13;
int d = 5 % 13;
int e = 13 / -5;
int f = -13 / 5;
int h = -13 % 5;
int j = 13 % -5;
System.out.println(a + "," + b);
System.out.println(c + "," + d);
System.out.println(e + "," + f);
System.out.println(h + "," + j);
}
結(jié)果為:
2,3
0,5
-2,-2
-3,3
再來一個(gè)一個(gè)分析:
a = 13 / 5,a = 2,其實(shí)就是數(shù)學(xué)上的13 / 5 ,結(jié)果為2。
b = 13 % 5,b = 3,這也是數(shù)學(xué)上的運(yùn)算,得出余數(shù)為3。
c = 5 / 13,c = 0,因?yàn)楸怀龜?shù)小于除數(shù),結(jié)果可以看成0.x,但是int類型是整數(shù)類型,所以結(jié)果只為0。
d = 5 % 13,d = 5,數(shù)學(xué)上規(guī)定:如果被除數(shù)比除數(shù)小,商是0,余數(shù)就是被除數(shù)本身。
e和f不用說了,結(jié)果都為-2。
但是h和j怎么是一個(gè)-3一個(gè)3呢,因?yàn)槿∮噙\(yùn)算的符號(hào)是根據(jù)第一個(gè)運(yùn)算數(shù)決定的,-13 % 5結(jié)果是-3,而13 % -5結(jié)果則是3。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot整合JavaMail通過阿里云企業(yè)郵箱發(fā)送郵件的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot整合JavaMail通過阿里云企業(yè)郵箱發(fā)送郵件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java中的 FilterInputStream簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
FilterInputStream 的作用是用來“封裝其它的輸入流,并為它們提供額外的功能”。接下來通過本文給大家分享Java中的 FilterInputStream簡(jiǎn)介,感興趣的朋友一起學(xué)習(xí)吧2017-05-05
SpringData JPA中查詢接口Repository的使用
本文主要介紹了SpringData JPA中查詢接口Repository的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
java構(gòu)建Stream流的多種方式總結(jié)
Java?8引入了Stream流作為一項(xiàng)新的特性,它是用來處理集合數(shù)據(jù)的一種函數(shù)式編程方式,本文為大家整理了多種java構(gòu)建Stream流的方式,希望對(duì)大家有所幫助2023-11-11
快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問題
這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03

