我一直在研究 rotate
算法,并发现了一个公式来归一化负数的旋转:n - (~r % n) - 1
。
我一直想知道这与 n - (abs(r) % n)
甚至 n - (-r % n)
有何不同。 NOT
是否有基本 abs
没有的特殊功能?还是只是为了表现?
最佳答案
假设 r == n
。或者,一般来说,r % n == 0
由于 -r % n
为 0,n - (-r%n)
为 n
。
但是,~r
是 -r - 1
所以 -r % n
是 n - 1
, n - (~r%n) - 1
是 0
。
对于任何其他r
,这两个表达式具有相同的值。
n - (-r % n)
的范围是 [1...n]
而 n - (~r % n ) - 1
是所需的 [0...n-1]
。
关于math - 当 r < 0 时,(n - (~r % n) - 1) 和 (n - (abs(r) % n)) 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197028/