2015-05-01 232 views
-5

我打得/红宝石学习和做了一些如下述代码片段,并得到:红宝石``**方法

1 ** 5 # => 1 
43 ** 67 # => 27694053307656599023809257877241042019569010395053468294153499816223586030238186389799480520831161107426185107 

什么是**操作员红宝石?为什么我第二次查询的结果数量太大?

+0

您的问题是什么? – sawa

回答

-1

**是指数操作符 - 它执行指数(功率)计算。让我通过这个简单的例子说明

2 ** 2 => 2 * 2 => 4

2 ** 3 => 2 * 2 * 2 => 8

2 ** 4 = > 2 * 2 * 2 * 2 => 16

2 ** 5 => 2 * 2 * 2 * 2 * 2 => 32

所以** 43 67 => 43 * 43 * 43 * 43 ................................................. ..............

所以它导致这样一个大数。

获取有关operatorts的更多详细信息http://www.tutorialspoint.com/ruby/ruby_operators.htm

2

这是一个power数学运算符:

2 * 3 
# => 6 

2 ** 3 
# => 8 
2

在Ruby中,**是指数运算符。也就是说,通过做a**b,你正在提高a的权力b。按照惯例,操作数之间没有空格。

例子:

3**2 
#=> 9 

2**3 
#=> 8 

注意的是,指数运算符具有比乘法和除法的优先级高,就像数学:

2 * 2**3 # (2 * 8) 
#=> 16 

18/3**2 # (18/9) 
#=> 2 

如果链中的运营商,优先从解决向右:

2**2**3 == 2**(2**3) # (2^8) 
#=> true 
1

**指数 - 执行对运营指数(功率)计算

1 ** 5 = 1 

意味着它将执行像1*1*1*1*1五次

如果你尝试这种

2**4 = 16 

意味着它将执行像2*2*2*2四次

0

它只是这样做:

2 * 4 => 8 

2 ** 4 => 64 

它当作第2功率(2)^ 4 => 2 * 2 * 2 * 2