gpt4 book ai didi

c++ - 实际上,负数的模数是多少?

转载 作者:太空狗 更新时间:2023-10-29 23:49:19 26 4
gpt4 key购买 nike

我看过很多关于负数模的问题的答案。每一个答案都放了标准

(a/b)*b + a%b is equal to a

解释。我可以用这种方法计算任何模数,而且我知道有必要使用一个模数函数,如果它是负数,则将 b 添加到 a%b 的值中以使模数有意义。

我试图用外行的术语来理解这一点。负数的模是多少?我在某处读到,您可以通过一些外行的方法将数字相加来手动计算负数的正确模数。这会很有帮助,因为 a/b *b + a%b 方法有点乏味。

澄清一下,外行人可以将正数的模解释为除以数字时的余数。显然,对于负数,情况并非如此,那么您如何正确地“理解”结果呢?

最佳答案

这在旧的 C++ 修订版中曾经是实现定义的,但现在都已完全指定:

  1. 除法截断,即 a/b 是舍去小数部分的数学值。例如,9/-5 是 −1.8 的截断,所以它是 -1

  2. 余数操作 a % b 由您提供的身份定义。所以让我们计算:(a/b) * b-1 * -55,所以 9 % -54

相比之下,-9 % 5-4。因此,即使 a/-b-a/b 相同,a % -b 通常也不同于 - a % b. (类似地,模等价的数学概念,其中两个整数全等模 n 如果它们相差 n 的整数倍,在替换 n-n。)

关于c++ - 实际上,负数的模数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com