Erlang有一个非常好的语法来表达具有任意基数的整数。它是base#number
。
示例:
> 2#101010.
42
> 16#2A.
42
Ruby中有类似的东西吗?
我已经知道#to_i(base=10)
。
答案 0 :(得分:5)
为任意基础执行此操作的简单但非常有效或安全的方法:
class Fixnum
def as_base(b)
to_s.to_i(b)
end
end
101010.as_base(2)
42
(你必须为class Bignum
做同样的事情来处理任意大整数文字......)
答案 1 :(得分:4)
有一个很好的 list 可能的文字,但它基本归结为
10 # base 10 by default
0b1010 # base 2
012 # base 8
0xa # base 16
答案 2 :(得分:3)
除了C语言的0x
符号表示十六进制数,0b
表示二进制,或0
表示八进制数,语法中没有任何内容。 to_i
在实践中运作良好。
答案 3 :(得分:3)
如果你有一个int,你可以在任何带有to_s的基础上表达它,就像字符串上的to_i一样。
irb(main):013:0> puts 255.to_s(2)
11111111