在C++11中,保证
我知道在我所知道的所有机器上都是正确的。
(-x) % m
是负数且等于(-x % m)
吗?其中x
和m
为正数。我知道在我所知道的所有机器上都是正确的。
(-x) % m
是负数且等于(-x % m)
吗?其中x
和m
为正数。4) 二元 / 运算符返回商,二元 % 运算符返回第一个表达式除以第二个表达式的余数。如果 / 或 % 的第二个操作数为零,则行为未定义;否则 (a/b)*b + a%b 等于 a。 如果两个操作数都是非负数,则余数为非负数;如果不是,则余数的符号由实现定义(重点在此)
这段内容来自于 C++03。
(-x) % m == -(x %m)
和 (-x) / m == -(x / m)
。相反,向负无穷舍入的好处是模数只有 m
种可能的值,并且这些值是模 m
的整数数学环的元素。 - Steve Jessop(-x) % m == -(x %m)
是一个很好的东西,我只是用它来解释。m
可能的结果要好得多) - RiaD
a/b
被舍去为零的方式。真的吗? - RiaD4.2
,去掉小数部分(即.
后面的数字),你就得到了4
。再拿-4.2
,同样去掉小数部分,你就得到了-4
。你所说的是 floor 函数,一种特殊的舍入方法。但标准是关于舍弃小数部分的,这并不会以任何方式改变.
前面的数字,它只是删除.
后面的数字。 - Christian Rau