最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
RokcetMq源碼中%是求余還是取模

這篇文章主要講解了“RokcetMq源碼中%是求余還是取?!保闹械闹v解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“RokcetMq源碼中%是求余還是取?!卑桑?/p>

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供七里河企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為七里河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

背景

很多同學(xué)看見(jiàn)我的這個(gè)標(biāo)題,不禁會(huì)說(shuō)到:你這個(gè)是在逗我么,求余和取模不是一回事嗎?是的再前不久之前我和你們的感受一樣,求余和取模難道不是一個(gè)玩意?直到有一天有一個(gè)群友再閱讀RokcetMq源碼的時(shí)候,發(fā)現(xiàn)了下面一段代碼:

private static int initValueIndex() {
       Random r = new Random();

       return Math.abs(r.nextInt() % 999) % 999;
   }

求余還是取模

我們仔細(xì)看上面的代碼發(fā)現(xiàn)使用了Math.abs,這個(gè)函數(shù)代表取絕對(duì)值,那就意味著和符號(hào)有關(guān)系,雖然這里的r.nextInt不可能為負(fù)數(shù),可能當(dāng)時(shí)的開(kāi)發(fā)人員理解這個(gè)函數(shù)可能會(huì)出現(xiàn)負(fù)數(shù)(實(shí)際上r.nextInt不會(huì)出現(xiàn)負(fù)數(shù))于是進(jìn)行了取絕對(duì)值。

那這個(gè)又和我們的標(biāo)題 求余和取模有什么關(guān)系呢? 別著急我們先來(lái)看下面的一個(gè)公式:

1.求整數(shù)商: c = a/b;

2.計(jì)算?;蛘哂鄶?shù): r = a - c*b.

不論是求余和取模都是使用這兩個(gè)公式進(jìn)行計(jì)算,但是他們?cè)诘谝徊角笳麛?shù)商的時(shí)候卻不同,求余運(yùn)算在取c值的時(shí)候向0方向舍入,取模運(yùn)算在計(jì)算c值的時(shí)候,向無(wú)窮小方向舍入,這里要注意的是求余運(yùn)算不是向無(wú)窮大舍入,為什么呢,因?yàn)樵赼和b符合都一致的時(shí)候,他們都會(huì)向下取整,但是a,b符號(hào)不一樣的時(shí)候求余就會(huì)向上取整,取模就會(huì)向下取整,最后就會(huì)出現(xiàn)取模運(yùn)算符和b一致,求余預(yù)算會(huì)和a一樣。

一般來(lái)說(shuō)c,c++,java '%' 號(hào)代表都是求余,python是取模。

而我們上面那段代碼中作者明顯是想實(shí)現(xiàn)取模,也就是當(dāng)b是正數(shù)的時(shí)候那么取模的值會(huì)一直為正。

但是在Java中我們?nèi)绾螌?shí)現(xiàn)取模呢?在Math中提供了這個(gè)函數(shù)Math.floorMod,用于我們進(jìn)行取模,我們有下面的代碼進(jìn)行驗(yàn)證:

    public static void main(String[] args) {
        System.out.println("取模" + Math.floorMod(3, -5));
        System.out.println("求余" + 3 % -5);
    }
    取模-2
    求余3

可以看見(jiàn)輸出和我們預(yù)期相符。

感謝各位的閱讀,以上就是“RokcetMq源碼中%是求余還是取?!钡膬?nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)RokcetMq源碼中%是求余還是取模這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)站欄目:RokcetMq源碼中%是求余還是取模
URL網(wǎng)址:http://fisionsoft.com.cn/article/jgshco.html