c - 为什么 7%-5 给出 2 而 -7%5 给出 -2?在这两种情况下都不应该是 -2 吗?

标签 c modulo

<分区>

请解释以下背后的原因,因为在数学上正确的答案在这两种情况下都是 -2:

int a=7%-5; //Assigns 2 to a
int a=-7%5;  //Assigns -2 to a

代码在 C 中。

最佳答案

7/-5 = -1 余数 2,因为 -1 * -5 + 2 = 5 + 2 = 7

-7/5 = -1 和余数 -2,因为 -1 * 5 + (-2) = -5 - 2 = -7

% 在 C++ 中是余数运算符(对于正数用作数学模运算符)。

关于c - 为什么 7%-5 给出 2 而 -7%5 给出 -2?在这两种情况下都不应该是 -2 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16585325/

相关文章:

c++ - 从 ida pro Hook 用户调用函数

javascript - 如何对表行和列结构使用模运算符?

c# - 在 C# 中处理 "Big"整数

javascript - 尝试用 JS 编写这个 Excel 函数,但在模数部分上遇到困难

java - 如何定义条件的起点?

javascript - 国际象棋风格图案

c - 即使缓冲区中有数据,select() 也会超时

C 运行时类型检查

android - 如何从 react-native 代码调用 C 函数?

C函数原型(prototype)