3

Erlang 有一种非常好的语法来表示具有任意基数的整数。是base#number

例子:

> 2#101010.
42
> 16#2A.
42

Ruby中有类似的东西吗?我已经知道了#to_i(base=10)

4

4 回答 4

5

一种简单但不是非常有效或安全的方法来为任意基执行此操作:

class Fixnum
  def as_base(b)
    to_s.to_i(b)
  end
end

101010.as_base(2)
42

(而且你必须做同样的class Bignum事情来处理任意大的整数文字......)

于 2012-05-24T02:22:08.457 回答
4

有一个很好 的可能文字列表 ,但基本上可以归结为

10 # base 10 by default
0b1010 # base 2
012 # base 8
0xa # base 16
于 2012-05-23T15:02:55.070 回答
3

除了受 C 启发的十六进制数字、二进制或八进制前导0x符号之外,语法中没有任何内容。不过在实践中效果很好。0b0to_i

于 2012-05-23T15:01:14.397 回答
3

如果你有一个 int,你可以用 to_s 以任何基数表达它,就像字符串上的 to_i 一样。

irb(main):013:0> puts 255.to_s(2)
11111111
于 2012-05-23T15:09:54.887 回答