当前位置: 首页 > 新闻动态 > 技术教程

数学与编程:为什么 10 对 -3 取余 结果不同?

作者:花韻仙語 浏览: 发布日期:2024-10-30
[导读]:10对-3取余结果:数学与编程的差异假设我们计算10对-3取余的结果,数学公式告诉我们,余数c等于a...

10对-3取余结果:数学与编程的差异

假设我们计算 10 对 -3 取余的结果,数学公式告诉我们,余数 c 等于 a 减去向下取整运算符 ⌊ a/b ⌋ 乘以 b,其中 a 为 10,b 为 -3。根据公式,我们得到:

c = a - ⌊a/b⌋ * b
c = 10 - ⌊10/-3⌋ * (-3)
c = 10 - (-4) * (-3)
c = 10 - 12
c = -2

因此,根据数学公式,10 对 -3 取余的结果应该是 -2。

然而,在 java 的 % 运算符和 mysql 的 mod 函数中,取余的结果却是 1。这是怎么回事呢?

原因在于,余数有正余数和负余数之分。正余数是小于除数的非负数;负余数是大于除数的负数。在 java 和 mysql 中,取余运算符默认返回正余数。因此,10 对 -3 取余的结果是 -3 的正余数,即 1。

因此,数学上计算的余数和编程语言中计算的余数存在差异,这是因为编程语言默认返回正余数。两种计算结果都是正确的,取决于具体的应用场景。

免责声明:转载请注明出处:http://sczxchw.cn/news/481125.html

扫一扫高效沟通

多一份参考总有益处

免费领取网站策划SEO优化策划方案

请填写下方表单,我们会尽快与您联系
感谢您的咨询,我们会尽快给您回复!