我们知道例如二的模可以这样表示:
x % 2 inpower n == x & (2 inpower n - 1).
例子:
x % 2 == x & 1
x % 4 == x & 3
x % 8 == x & 7
两个数的一般非幂怎么样?
假设:
x % 7==?
最佳答案
首先,这样说其实并不准确
x % 2 == x & 1
简单的反例:x = -1
。在许多语言中,包括 Java,-1 % 2 == -1
。也就是说,%
不一定是模的传统数学定义。例如,Java 将其称为“余数运算符”。
关于按位优化,在按位算术中只能“轻松”完成 2 的模幂。一般来说,只有 b 的模幂可以“轻松”地用数字的 b 表示来完成。
例如,在基数 10 中,对于非负数 N
,N mod 10^k
只是取最低有效位 k
.
引用资料
关于algorithm - 按位取模运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072665/