【发布时间】:2017-01-13 05:08:27
【问题描述】:
所以模运算可以给你三个值:
那么:
-7 % 5 = 3(数学,余数 >= 0)
-7 % 5 = -2 (C++)
-7 % (size_t)5 = 4 (C++)
另一个例子:
-7 % 4 = 1(数学,余数 >= 0)
-7 % 4 = -3 (C++)
-7 % (size_t)4 = 1 (C++)
当左操作数为正时,所有三种方法的答案都是相同的。但是对于负值,它们似乎都有自己的方法。 C++中无符号操作数的取模值是如何计算的?
【问题讨论】:
-
您的“数学”断言假设在整个数学世界中只有一个模数定义,这当然是不正确的!
-
对无符号类型的操作不可能有负数。