哪种方法可以更快地确定奇偶性?

Which is the faster method to determine parity?

因此,当我学习编程时,我了解到一个简单的 'x % 2' 将是一种快速确定数字是否为偶数的好方法。我已经开始使用 'x & 1' 因为我相信它在 CPU 中更快(尽管考虑到今天的速度可能毫无意义)。 任何对 CPUs 了解更多的人都可以阐明这是否真的更快,或者是否正在进行一些简单的编译器优化?

C 是一种编译语言。它不是汇编语言。

编译器的工作是对你的机器指令集的了解至少和你一样多(通常多得多)。

如果您知道 x % 2x & 1 是等价的,难道您不认为您的编译器也应该知道吗?

对于任何体面的编译器,如果您编写 x % 2,并且编译器知道在您的机器上进行位测试会更快,它会自行发出代码来执行位测试。

最重要的是,您应该编写清楚表达您的意图的代码,让编译器担心优化它。只有在极少数情况下,您才能像这样使用 "microoptimizations" 显着提高代码的性能。值得执行它们 只有 如果你已经证明你试图优化的代码是一个重要的瓶颈, 你已经证明了提议的改进确实要快得多。否则,请不要打扰:您可能是在浪费时间。

但无论如何,我们无法告诉您一般情况下哪种方式更快,因为每台机器都可能不同。要确定答案,您必须自己测量。