如何快速计算2 ^ x?

时间:2013-11-03 23:32:14

标签: java bitwise-operators

我正在读一篇论文,问题是:“你怎么能快速计算2 ^ X”? 纸上的建议答案:“1<< X< X”

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

这样的事情

2 ^ 9 = 11

1 << 9 = 512

想知道 - 有谁能想到我在这里缺少什么逻辑或作者在这里真的错了?

2 个答案:

答案 0 :(得分:11)

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

希望这有帮助!

答案 1 :(得分:2)

2 9 是512。

所以1&lt;&lt; 9做的是正确的。