不同编程语言的取模运算%
取模運(yùn)算即兩數(shù)相除的余數(shù)。假設(shè)a/b = q...r,其中q是商,r是余數(shù)。則滿(mǎn)足a=b*q+r,其中|r|<|a|。
如果a、b都為正,則r為正;
如果a、b都為負(fù),則r為負(fù);
如果a、b一正一負(fù),則不同的語(yǔ)言會(huì)有所不同。
?
C/Java:
? ? 取模運(yùn)算符%只接受整型操作數(shù),且取模運(yùn)算的結(jié)果的符號(hào)與第一個(gè)操作數(shù)的符號(hào)相同(或?yàn)?)。
? ? 比如: (-1) % 2 = -1.
?(-12) % 5 = (-12) - (-2*5) = -2
Python/Perl
取模運(yùn)算符%運(yùn)算的結(jié)果的符號(hào)與第二個(gè)操作數(shù)的符號(hào)相同。
比如: (-1) % 2 = 1
(-12) % 5 = (-12) - (-3*5) = 3
Python和Perl的這種處理和我們想象的有點(diǎn)不同,但在某些情況下會(huì)很好用,特別是環(huán)形數(shù)據(jù)取模。比如對(duì)角度取模,如果要求最終數(shù)據(jù)是(0,2*pi),但輸入數(shù)據(jù)R為任意值(即可能大于2*pi,也可能為負(fù)值),取模示例:
5*pi/2 --> 2*pi + pi/2 --> pi/2
-pi/2 --> -pi/2 + 2*pi --> 3*pi/2
此時(shí),使用Python或Perl,可以直接使用R%(2.0*pi)即可。
再舉一例:
p=[1,2,3,4,5,6]
則:p[-2] = 5(-2指示列表倒數(shù)第二個(gè)值),
p[(-2)%(len(p))] = p[4] = 5,
即p[-2]=p[4]=p[-2%len(p)]
轉(zhuǎn)載于:https://www.cnblogs.com/yuyan/archive/2012/03/18/2404391.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的不同编程语言的取模运算%的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WCF自我学习之(一)
- 下一篇: 使用命令行建立Zend Framewor