深度理解取余/取模运算
生活随笔
收集整理的這篇文章主要介紹了
深度理解取余/取模运算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
日常編程經(jīng)常會接觸到取余/取模運算,那么計算機中取余/取模運算究竟是怎么定義的?
P1:四種"取整"方式
數(shù)學(xué)取整
1.1 向0取整
parseInt() 注意接受參數(shù)是string;所以調(diào)用該方法時存在類型轉(zhuǎn)換parseInt(3.141592654) // 31.2?向下取整
Math.floor() 不四舍五入Math.floor(1.5555) // 11.3 向上取整
Math.ceil() 向上取整Math.ceil(1.5555) // 2 Math.ceil(1.1555) // 21.4?四舍五入取整
Math.round() 四舍五入取整Math.round(1.5555) //2 Math.round(1.4999) //1P2:用公式理解"取模"
取模概念
如果a和d是兩個自然數(shù),d非零,可以證明存在兩個唯一的整數(shù) q 和 r,滿足?a = q*d + r 且 0 ≤ r < d。其中,q 被稱為商,r 被稱為余數(shù)。
?運算符之 --- 取余運算 %
?
P3:“取余”和“取模”一樣嗎?
取整
取余:盡可能讓商,進行向0取整。
取模:盡可能讓商,向-∞方向取整。
C中 % ,本質(zhì)其實是取余。
Python中 % ,本質(zhì)其實是取模。
理解鏈:
對任何一個大于0的數(shù),對其進行0向取整和-∞取整,取整方向是一致的。故取模等價于取余
對任何一個小于0的數(shù),對其進行0向取整和-∞取整,取整方向是相反的。故取模不等價于取余
同符號數(shù)據(jù)相除,得到的商,一定是正數(shù)(正數(shù)vs正整數(shù)),即大于0!故,在對其商進行取整的時候,取模等價于取余。
P4:總結(jié)
- 浮點數(shù)(或者整數(shù)相除),是有很多的取整方式的,0向取整、(正、負)無窮向取整、四舍五入取整…
- 如果 a 和 d 是兩個自然數(shù),d非零,可以證明存在兩個唯一的整數(shù) q 和 r,滿足 a = q*d + r , q 為整數(shù),且0 ≤ |r|< |d|。其中,q 被稱為商,r 被稱為余數(shù)
- 在不同語言,同一個計算表達式,“取?!苯Y(jié)果是不同的。我們可以稱之為分別叫做正余數(shù) 和 負余數(shù)
- 具體余數(shù) r 的大小,本質(zhì)是取決于商 q 的。而商,又取決于除法計算的時候,取整規(guī)則。
- 取余 vs 取模:取余是盡可能讓商,進行向 0 取整。取模是盡可能讓商,向 -∞ 方向取整。
- 參與取余的兩個數(shù)據(jù),如果同符號,取模等價于取余
- 如果參與取余的兩個數(shù)據(jù)符號不同,在C語言中(或者其他采用向0取整的語言如:C++,Java),余數(shù)符號,與被除數(shù)相同。(因為采用的向0取整)
總結(jié)
以上是生活随笔為你收集整理的深度理解取余/取模运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: op的形态和自激
- 下一篇: Mathtype 自动转 latex b