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

