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 进行按位运算,但当然,我必须增加数组的大小。但是,随着性能的提高,这绝对是值得的。

相关文章:
  • 没有找到相关文章