溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中如何實(shí)現(xiàn)取模運(yùn)算

發(fā)布時(shí)間:2022-01-14 14:14:03 來源:億速云 閱讀:1401 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Java中如何實(shí)現(xiàn)取模運(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é)果可能大家都能看得出來.

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

以上是“Java中如何實(shí)現(xiàn)取模運(yùn)算”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI