什么是红宝石中使用的?

时间:2012-07-13 05:55:35

标签: ruby syntax

  

可能重复:
  Use of caret symbol( ^ ) in 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

第w!所以我一直向上4^i并绘制它们,1^i & 3^idecent patterns一起出现但2^i & 4^i只是到处都没有明显的模式(尽管不太可能) )只有11个绘图点,所以我来找你们女士和男士们问你:

^用于什么?!

1 个答案:

答案 0 :(得分:21)

在大多数编程语言中,^是XOR运算符(Exclusive Or in Wikipedia)。 XOR是CPU中最基本的操作之一,它通常用于归零(考虑a ^= a),因为它很快并且操作码很短。

对于电源功能,您必须使用例如**(例如红宝石),java.lang.Math.powmath.powpow等。

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

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