9

可能重复:
在 Ruby 中使用插入符号 (^)

所以我在玩一些代码,并尝试与电源运算符一起玩。所以我想也许我可以使用插入符号(^)来达到这个目的,但是在使用它之后:

for i in 0..10
  puts "#{i}   #{1^i}\n"
end

我得到了一些非常时髦的结果

0   -  1
1   -  0
2   -  3
3   -  2
4   -  5
5   -  4
6   -  7
7   -  6
8   -  9
9   -  8
10  -  11

我看到的唯一模式是奇数为-1,偶数为+1,但是当我尝试时:

for i in 0..10
  puts "#{i}   #{2^i}\n"
end

我得到:

0   -  2
1   -  3
2   -  0
3   -  1
4   -  6
5   -  7
6   -  4
7   -  5
8   -  10
9   -  11
10  -  8

哇!所以然后我继续上去4^i绘制它们,1^i & 3^i出来的图案不错,但2^i & 4^i到处都没有可见的图案(尽管不太可能),只有 11 个绘图点,所以我来找你们女士们和先生们问你:

到底是干什么^用的?!

4

1 回答 1

28

在大多数编程语言中,^是 XOR 运算符(维基百科中的 Exclusive Or)。XOR 是 CPU 中最重要的操作之一,它通常用于零寄存器(想想a ^= a),因为它速度快且操作码短。

对于幂函数,您必须使用 eg **(例如在 ruby​​ 中)、java.lang.Math.powmath.powpow

事实上,我无法命名一种使用^. 它在 LaTeX 中用于格式化(从技术上讲,作为上标,而不是幂函数)。但是我一直看到的两个变体是**(因为幂函数与乘法直接相关)和pow(base, exp).

请注意,您可以使用移位更快地计算 2 的整数幂。

于 2012-07-13T06:01:14.290 回答