当在irb中输入以下数字时,我得到以下结果:
50 #=> 50
050 #=> 40
030 #=> 24
005 #=> 5
为什么050
等于40
而不是50
,030 == 30
,005 == 5
?发生了什么?
答案 0 :(得分:6)
以0开头的数字被解释为八进制数。
010 => 8
020 => 16
0777 => 511
答案 1 :(得分:4)
八位数。不仅仅是在Ruby中 - 大多数编程语言都认为当你启动一个零的数字时,它就是基数为8。