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
intがある場合は、文字列のto_iのように、to_sを使用して任意のベースで表現できます。
irb(main):013:0> puts 255.to_s(2)
11111111
構文には、16進数、2進数、または8進数の先頭のCに触発された0x
表記以外は何もありません。ただし、実際には非常にうまく機能します。0b
0
to_i