是否有理由使用(nr& 1 == 0)超过(nr%2 == 0)来检查奇偶校验?

时间:2016-12-30 20:14:59

标签: bit-manipulation bitwise-and parity

性能有任何实际差异吗? 它更快吗? (假设我在同一个程序中至少有100个案例使用它,它会在速度方面改进我的程序吗?)

1 个答案:

答案 0 :(得分:5)

这个问题可能更合适Software Engineering Stack Exchange

如果你正在使用优化编译器,那么任何形式的n % <power of two>都会被优化到n & <power of two minus one>,因为它们是等价的,但在几乎所有的架构中我都能想到后者很多效率更高。

前一种表单更清楚地表达了您的意图,但很多开发人员会将n & 1视为n % 2的“更快版本”。