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