请解释Ruby如何解释数字

时间:2013-10-04 06:35:51

标签: ruby

当在irb中输入以下数字时,我得到以下结果:

50 #=> 50
050 #=> 40
030 #=> 24
005 #=> 5

为什么050等于40而不是50030 == 30005 == 5?发生了什么?

2 个答案:

答案 0 :(得分:6)

以0开头的数字被解释为八进制数。

010 => 8
020 => 16
0777 => 511

答案 1 :(得分:4)

八位数。不仅仅是在Ruby中 - 大多数编程语言都认为当你启动一个零的数字时,它就是基数为8。

  • 50 = 5 * 10
  • 050 = 5 * 8