【发布时间】:2015-09-21 12:07:09
【问题描述】:
在 Rust(与大多数编程语言一样)中,% 运算符执行 remainder 操作,而不是 modulus 操作。这些operations have different results for negative numbers:
-21 modulus 4 => 3
-21 remainder 4 => -1
println!("{}", -21 % 4); // -1
但是,我想要模数。
我找到了一个解决方法((a % b) + b) % b,但如果已经有这样的功能,我不想重新发明轮子!
【问题讨论】:
-
任何理由使用术语
modulus而不是modulo(这是更常见的AFAICS)。 -
他们可能在某个地方研究过使用模数一词,但不知道不同的机构在词汇上往往会有所不同。
-
对于 2 的幂,您可以执行 -21 & (4 - 1) 之类的操作,前提是它是一个整数。