x mod 289 的按位等价
Bitwise equivalence of x mod 289
本文关键字:mod 更新时间:2023-09-26
我的尝试是通过找到x mod 289
的按位等价性来提高我的JavaScript应用程序的性能
我的代码如下所示:lookupArray[x % 289]
和 x 将始终在 0 到 288 的范围内,所以我不必担心负数。
所以基本上我有一个大小为 288 的查找数组,所以如果 x 超过 288,它将从 0 重新开始。如果数字 289 没有按位等价,我可以增加数组大小并重复一些查找数字,而是针对一些更大的数字。但那会是多少?
如果我的查找表的大小较小,例如 240,那么我将能够使用 255,但这对我来说太低了。
谢谢!
据我所知,按位在 mod 操作方面并不总是准确的。
关于按位优化,在按位算术中,只有 2 的模幂可以"轻松"完成。一般来说,只有基数 b 的模幂才能"轻松"地用以 b 为底的数字表示来完成。
这是类似问题的答案
如果没有
更好的答案,我将使用我自己的问题的一个答案。
基本上我可以使用任意数量的二减一的幂,或者换句话说2^n - 1
来代替模数。
x & (2^n - 1)
然后,我可以使用数字 511 进行按位运算,但当然,我必须增加数组的大小。但是,随着性能的提高,这绝对是值得的。
相关文章:
- 没有找到相关文章