我的朋友说"mod"和"rest"之间存在差异.
如果是这样,那么C和C++的差异是什么?"%"是指C中的"mod"还是"rem"?
在早期的课程中,我被教导n % d = r并将其视为n = d*q + r,d除数在哪里,q是商,并且r是余数(注意其余部分永远不会是负数).
因此,例如,-111 mod 11是10,因为-111 = -11*-11 + 10(相反-111 = -11*10 -1,看到这将如何给我们一个负余数).
但是,打印结果时-111 % 11,-1结果并非如此10.为什么?这在技术上是不是错了?
我在这里运行一些代码.我试过了-40 % 3.它给了我输出2.当我在C中执行相同的操作时,我得到:
int i = (-40) % 3
printf("%d", i);
Run Code Online (Sandbox Code Playgroud)
输出是
-1
Run Code Online (Sandbox Code Playgroud)
两种语言如何在内部执行模运算?