1

我正在阅读一篇论文,其中的问题是:“如何快速计算 2 ^ X”?论文中的建议答案:“1 << X”

当然,这似乎不是正确的答案,因为我尝试过类似的事情

2 ^ 9 = 11

1 << 9 = 512

想知道 - 任何人都可以认为我在这里缺少什么逻辑或作者在这里真的错了吗?

4

2 回答 2

11

我认为您将 2 ^ x 误解为“两个与 x 异或”,而意图可能是 2 x。在这种情况下,1 << x是计算 2 x的好方法。不幸的是,在输入纯文本时,^ 常用于表示求幂,但在 C、C++ 和 Java 的上下文中,^ 表示 XOR 运算符。(对于新的 C/C++/Java 程序员来说,这也是一个简单的陷阱!)

希望这可以帮助!

于 2013-11-03T23:34:00.500 回答
2

2 9是 512。

所以 1 << 9 做了正确的事情。

于 2013-11-03T23:34:40.257 回答