位操作性能:屏蔽或移位

时间:2012-10-05 18:04:25

标签: java android bit-manipulation

我并不熟悉低级(硬件关闭)细节(忘记了很多)。

我的应用程序需要在很短的时间内执行数百万(甚至更多)位操作操作,因此性能很重要。

我需要检查int值的某个部分(由4,5或6位组成)是否等于指定值。

我可以使用int作为完整的掩码来解决这个问题。或者通过使用位移(以消除令人不安的部分)然后进行直接比较(==)。这些是否具有相同的性能?哪个更快?

1 个答案:

答案 0 :(得分:3)

一般来说((a& b)== c)应该非常快,并且比同一操作更快 额外的转移。 ((A>将N)和b)== c)中

其他优化技术(如循环unrollong)可能比尝试猜测哪种移位和掩码操作最快有效。

如果您真的关心该级别的性能,答案是对实际部署环境中所有可能的变化进行基准测试。