C/C++取模为什么和数学中的不同

C/C++ 中的取模运算和数学中有什么不同

C/C++/Java 的取模运算和数学中有些不同,一定要注意!!!

先举一个简单的例子:

-1 % 3 = ?

而对于这个例子,不同的程序也给出了不同的答案:

win10自带计算器:

image

C++:

image

Java:

image

为什么会出现这种情况呢?

因为在数学中和在计算机中虽然他们的计算过程相同,但是计算结果却有些差异。

就拿这个例子来说

-1 % 3 = (-1) - 3 * (-1 / -3)

计算过程是相同的,但是他们分别是怎么处理的呢?

image

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

posted @ 2021-12-23 21:44  itgrape  阅读(167)  评论(0)    收藏  举报