負數取餘 整除,Python和C語言的不同

2022-02-08 05:35:24 字數 604 閱讀 9904

總結一句:python中負數整除,是向負無窮取整,所以導致負數取餘不對

在數學公式中,兩種語言的表示演算法都是一樣的,都是:

r=a-n*[a/n]

以上,r是餘數,a是被除數,n是除數。

唯一不同點,就是商向0或負無窮方向取整的選擇,c從c99開始規定向0取整,python則規定向負無窮取整,選擇而已。

向零取值的含義是:9/7=1 .29----向0取值-->1;-9/7=-1.29----向0取值------>-1

向負無窮取值的含義是:9/7=1 .29----向0取值-->1;-9/7=-1.29----向0取值------>-2

所以套用上述公式為:

c 語言:(a%n的符號與a相同)

-9%7=-9 - 7*[-1]=-2;

9%-7=9 - -7*[-1]=2;

python語言::(a%n的符號與n相同)

-9%7=-9 - 7*[-2]=5

9%-7=-9 - -7*[-2]=-5

原文:

python整除和取餘

向下取整 int 向0取整 正數的取餘比較直接 print 123 10 3這裡結果為3。但是換為負數取餘,情況就有所不同 print 123 10 7 print 123 10 3這裡面第二條是我們一般意義上的取餘操作。這裡也特別標註一下,如果涉及到負數取余要用上述解決辦法。那麼我們看第一條,結果...

Python 關於整除以及負數取餘遇到的問題

最近在編碼的過程中,在整除以及取餘的時候遇到了一些比較迷的問題,這裡碼一下這些問題,以備日後檢視。在python3中,除法有 以及 兩種,這兩個有著明顯的區別,具體區別看 print 12 10 print 12 10 這兩行 的輸出如下 1 1.2這結果的差別顯而易見。當被除數是負數的時候又是令一...

python基礎知識之整除 取餘 冪運算

python直譯器可以當作計算器使用 2 2 4乙個整數被另乙個整數除,計算結果的小數部分被截去,只保留整數部分。如果參與除法的兩個數中有乙個為浮點數,運算結果為浮點數。1 2 0 1.0 2.0 0.5 1.0 2 0.5 1 2.0 0.5 1 2.0.5如果 希望只執行簡單除法,例如1 2 0...