分析C語言和python負數取模與取余的規則
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
基本概念
正數比較簡單,我們不談,只看負數,負數的情況還是比較復雜的,先來看看不同平臺下負數"取模"的差異
可以看出不同平臺下C語言"取模"和取商是沒有區別的.再看看python環境下的.
可以發現兩種語言負數求商和取余結果是不一樣的. 定義中規定,余數是要大于等于0的,而C語言卻計算出了負數. 結論:很顯然,上面關于取模的定義,并不能滿足語言上的取模運算. 因此引出了修正定義 修正定義
是什么決定了這種現象? 具體余數r的大小,本質是取決于商的,商確定了,余數自然就能確定. 而商取決于什么? 答案是,取決于除法計算的時候,結果的取整規則. 取整規則決定商的值C語言中取整規則默認是向0取整,python中默認取整規則是向下取整. 根據它們兩個的規則,顯然大于0的情況都是相同的,而小于0的情況是不同的,因此負數的情況下的它們的結果不相同 因為它們兩的取整規則不同,而且又必須滿足修訂版的"取模"規則,決定了它們的計算結果現象 還有一個問題,那就是既然不同語言%符號計算的值不一樣,那還是模數或余數嗎?或者說取余和取模一樣嗎? 取模和取余不一樣.定義
根據定義: C中%運算,本質是取余數. python中%運算,本質是取模. 再根據取整規則來看: 對任何一個大于0的數,對其進行0向取整和-∞取整,取整方向是一致的。故取模等價于取余 小歸納: 同符號數據相除,得到的商,根據數學同符號相消規則,一定是正數,即大于0! 大于0取整方式就是相同的. ?轉自https://www.cnblogs.com/DSCL-ing/p/18414566 該文章在 2024/12/10 8:52:52 編輯過 |
關鍵字查詢
相關文章
正在查詢... |