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