C/C++取模为什么和数学中的不同
C/C++ 中的取模运算和数学中有什么不同
C/C++/Java 的取模运算和数学中有些不同,一定要注意!!!
先举一个简单的例子:
-1 % 3 = ?
而对于这个例子,不同的程序也给出了不同的答案:
win10自带计算器:

C++:

Java:

为什么会出现这种情况呢?
因为在数学中和在计算机中虽然他们的计算过程相同,但是计算结果却有些差异。
就拿这个例子来说
-1 % 3 = (-1) - 3 * (-1 / -3)
计算过程是相同的,但是他们分别是怎么处理的呢?

所以,在C中,对一个负数进行取模运算,结果一定是一个负数。

浙公网安备 33010602011771号