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


總結一句: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

原文:https://blog.csdn.net/tao546377318/article/details/53183245

---------------------------------------------------------------------------------

關注微信公眾號即可在手機上查閱,並可接收更多測試分享~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM