轉(zhuǎn)載請(qǐng)注明出處:http://www.reibang.com/p/7a3d3d86b97f
本文出自Shawpoo的簡(jiǎn)書
我的博客:CSDN博客
【Python學(xué)習(xí)筆記專欄】:http://blog.csdn.net/column/details/17658.html
舉例
我們都知道在數(shù)學(xué)中除法計(jì)算是這樣的:
被除數(shù)(a) ÷ 除數(shù)(b) = 商(q)……余數(shù)(r)
由上述公式可以得出:
被除數(shù) = 商 * 除數(shù) + 余數(shù)蓖谢,即:a = b * q + r
有了公式之后,我們可以得出結(jié)果:如:
10 ÷ 3 = 3……1
10 ÷ (-3) = -3……1
10 ÷ (-3) = -4……-2
-10 ÷ 3 = -3……-1
-10 ÷ 3 = -4……2
-10 ÷ (-3) = 3……-1
我們上述這些計(jì)算都符合a = b * q + r嫉拐,那么例如這種a ÷ (-b)或者-b ÷ a有兩種結(jié)果的情況下沃暗,我們?cè)撊∧膫€(gè)值呢?
編程中的除法
編程中的除法分為三種:
向上取整:即在所有計(jì)算的結(jié)果中件甥,取最接近
+∞
的那個(gè)值為最終的商捌议。如10 ÷ (-3) = -3……1而不是10 ÷ (-3) = -4……-2。向下取整:同理引有,在所有計(jì)算的結(jié)果中瓣颅,取最接近
-∞
的那個(gè)值為最終的商。如-10 ÷ 3 = -4……2而不是-10 ÷ 3 = -3……-1譬正。向零取整:即宫补,在所有計(jì)算的結(jié)果中,取最接近0的那個(gè)值為最終的商曾我。
經(jīng)過(guò)推理運(yùn)算和查閱書籍發(fā)現(xiàn):
Java粉怕、C/C++遵循的取整方式為:向零取整
Python遵循的取整方式為:向下取整
所以:
- Java(C/C++)
整除 | 取模(求余) |
---|---|
10 / 3 = 3 | 10 % 3 = 1 |
10 / -3 = -3 | 10 % -3 = 1 |
-10 / 3 = -3 | -10 % 3 = -1 |
-10 / -3 = 3 | -10 % -3 = -1 |
- Python
整除 | 取模(求余) |
---|---|
10 // 3 = 3 | 10 % 3 = 1 |
10 // -3 = -4 | 10 % -3 = -2 |
-10 // 3 = -4 | -10 % 3 = 2 |
-10 // -3 = 3 | -10 % -3 = -1 |