vhdl语言中,求模运算符mod有什么用?它与rem区别在哪里?

在网上看到 :-5 mod 3 =1;5 mod -3 =-1;-5 mod -3 = -2,谁能告诉我这究竟是怎么算的?

mod是取模(即多少个整数倍),rem是取余(即整除后余几);一般mod的结果符号取决于除数(这是因为除数的绝对值通常比被除数小)。即比如 :-5 mod 3 =1;因为3+3=6 ,那么3要想靠近-5需要0-3=-3,再减就超出了(-6比-5小了,即减多了);而-5比-3小2(2<3),故-5 mod 3=1;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-26
求模运算(mod)是整除后得到的商,求余运算(rem)是整除后得到的余数
这两种运算主要用于不同进制数之间的转换。追问

上面三个算式怎么得到?可以解释一下吗?

本回答被网友采纳
第2个回答  2019-09-17
x mod y:x/y的商是向下(向着无穷小的方向)取整,我们将其取整后的结果记为w,则x mod y=x-w*y。所以:-5 /3的商为-1.67,故w=-2,所以-5 mod 3=-5-(-2*3)=1;
同理,5/-3结果为-1.67,w=-2,5 mod -3=5-(-2*-3)=-1;
同理,-5/-3结果为1.67,w=1,-5 mod -3=-5-(1*-3)=-2。
x rem y:x/y的商是向着0的方向取整,我们将其取整后的结果记为z,则x rem y=x-z*y.
例如:-5 /3的商为-1.67,故z=-1,所以-5 rem3=-5-(-1*3)=-2;其他的类似。
希望可以帮到你!