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

intがある場合は、文字列のto_iのように、to_sを使用して任意のベースで表現できます。

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

構文には、16進数、2進数、または8進数の先頭のCに触発された0x表記以外は何もありません。ただし、実際には非常にうまく機能します。0b0to_i

于 2012-05-23T15:01:14.397 に答える