Java%(取模運(yùn)算)全面講解
Java%(取模運(yùn)算)
Java的取模運(yùn)算
1.實(shí)現(xiàn)算法
public static double ramainder(double dividend, double dividor) { ? ? ? ? return dividend - dividend / dividor * dividor; ? ? }
2.java的取模運(yùn)算支持類型:字符型(自然不包括負(fù)數(shù))、字節(jié)型、短整型、整型、長(zhǎng)整型、單精度浮點(diǎn)型、雙精度浮點(diǎn)型.
C++的取模運(yùn)算
算法同上
取模運(yùn)算支持類型:字符型(不包括負(fù)數(shù))、字節(jié)型、短整型、整型、長(zhǎng)整型、布爾類型(除數(shù)不能為false,原因在C++中,true表示1,false表示0,自然除數(shù)不能為0;).
注意事項(xiàng):奇偶判斷
先看一段代碼:
public static void main(String[] args) { ? ? ? ? int arrs[] = { 2, 1, 0, -1, -2 }; ? ? ? ? for (int i = 0; i < arrs.length; i++) { ? ? ? ? ? ? System.out.println(arrs[i] + (arrs[i] % 2 == 1 ? "是奇數(shù)" : "是偶數(shù)")); ? ? ? ? } ? ? }
很顯然是一段判斷奇偶性的代碼,但是結(jié)果可能大家都能看得出來(lái).
2是偶數(shù)1是奇數(shù)0是偶數(shù)-1是偶數(shù)-2是偶數(shù)
為什么-1會(huì)是偶數(shù)呢? 原因就是取模運(yùn)算的實(shí)現(xiàn)算法導(dǎo)致的.
System.out.println(arrs[i] + (arrs[i] % 2 == 1 ? "是奇數(shù)" : "是偶數(shù)")); //修改為: System.out.println(arrs[i] + (arrs[i] % 2 == 0 ? "是偶數(shù)" : "是奇數(shù)"));
給我一個(gè)警示:在以后的奇偶判斷使用中,使用偶數(shù)進(jìn)行判斷代替使用奇數(shù).
(同樣的現(xiàn)象C++中也是一樣)
編程語(yǔ)言中的%取模運(yùn)算的本質(zhì)探究
公式:a % b = a - a / b * b(對(duì)于a為正數(shù))
如:
-10 % 3 => -10 - (-10)/ 3 * 3 = -10 + 9 = -1
本質(zhì)就是-10能夠加減多少個(gè)3能最接近0,-10肯定要加三個(gè)3,就等于-1接近0
10 % -3 => 10 - 10 / (-3) * (-3) = 10 - 9 = 1
本質(zhì)就是10加減多少-3能最接近0,10肯定要加三個(gè)-3,就等于1接近0
-10 % -3 => -10 - (-10) / (-3) * (-3) = -10 + 9 = -1
本質(zhì)就是-10能夠加減多少個(gè)-3能最接近0,-10肯定要減三個(gè)-3,就等于-1接近0
當(dāng)a為負(fù)數(shù)時(shí):
公式:a - (int)a / b * b
如:
-10.5%3 = -10.5 - (-10) / 3 * 3 = -10.5 + 9 = -1.5
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springmvc發(fā)送json數(shù)據(jù)轉(zhuǎn)Java對(duì)象接收
這篇文章主要介紹了Springmvc發(fā)送json數(shù)據(jù)轉(zhuǎn)Java對(duì)象接收,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn)
本文主要介紹了SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11java 中Comparable與Comparator詳解與比較
這篇文章主要介紹了java 中Comparable與Comparator詳解與比較的相關(guān)資料,需要的朋友可以參考下2017-04-04quartz的簡(jiǎn)單使用、SpringBoot使用和自定義數(shù)據(jù)源集成方式
這篇文章主要介紹了quartz的簡(jiǎn)單使用、SpringBoot使用和自定義數(shù)據(jù)源集成方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>2024-01-01IDEA中request.getParameter爆紅問(wèn)題及解決
這篇文章主要介紹了IDEA中request.getParameter爆紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11