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)文章
mybatis plus開發(fā)過程中遇到的問題記錄及解決
這篇文章主要介紹了mybatis plus開發(fā)過程中遇到的問題記錄及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Java Integer[]和int[]互相轉(zhuǎn)換方式
這篇文章主要介紹了Java Integer[]和int[]互相轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
本文給大家分享的是一則使用java編寫的文件管理器的代碼,新人練手的作品,邏輯上還是有點小問題,大家?guī)兔纯窗伞?/div> 2015-04-04最新評論

