Math——取模運算及取余運算


取余運算與取模運算

取余運算(Reminder Operation)即我們小學時學的算術概念,常用於數學領域,而取模運算(Modular Operation)常用於計算機領域

公式

c = a/b
a%b = a - c*b
取余運算和取模運算的運算公式相同,區別只在於在第一步求整商時采用的取整方法不同

取整運算

要明白取模運算和取余運算之間的區別,首先要了解取整運算(Round Operation)

取整運算常用的有三種,向負無窮取整,向正無窮取整,向零取整

以lua語言為例,lua的math數學庫提供三個取整函數,floor向負無窮取整,ceil向正無窮取整,modf向零取整
(PS:lua的modf函數在取整時除了會返回取整后的值,還會返回小數點后的值作為第二個返回值)

示例:
a = 9
b = 4

a/b除法的結果取整方法有三種:

math.floor(9/4) = 2
math.ceil(9/4) = 3
math.modf(9/4) = 2

取模與取余

取余運算在運算時,a/b除法結果的取整使用的是modf()函數,向零取整

取模運算在運算時,a/b除法結果的取整使用的是floor()函數,向負方向取整

示例:
a,b都為整型操作數時,取模運算和取余運算相同,結果也為整型;否則,結果都為浮點型。

a = 9
b = 4

取余運算:a/b = 2 ; a%b = 1;
取模運算:a/b = 2 ; a%b = 1;

a = -9
b = 4

取余運算: a/b = -2 ; a%b = -1;
取模運算: a/b = -3 ; a%b = 3;


免責聲明!

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



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