nil

nil is nil.

Unchain Base Number Converter Library in Ruby

Rubyでフリーダムなn進数変換

進数変換ライブラリを作ってあるので、これを紹介してみます。

integer-base

Rubyでは、普通進数変換で困るシーンって無いんじゃないかなと思います。 というのも、2~36進数の進数変換をぱっぱと出来る機能が組み込みで用意されているからです。

  • Integer#to_s(base)
  • String#to_i(base)

みたいに。

ということで、このライブラリは実用を目的としていません。

たとえば・・・

  • 36進数以上の進数変換やるとしたらどうなんだろ?
  • オレオレ数字で数を表現してみたい
  • つ1進数

こういった思いつきレベルを、簡単に試せるようにして置きたかったわけです。 具体的には、進数表す整数の代わりに好きな文字並べた配列を渡すと、それに従って進数変換をかけます。 並べてみると、次の2つが同じ結果になります。

'10'.to_i 2                #=> 2
'10'.to_i %w[0 1]          #=> 2

これはつまり、 0-9 + A-Z = 36 という(実用の)壁を突破出来るということを示しているわけです。 たとえばこういうことができます。

':)'.to_i %w[) :]          #=> 2

37進数以上だって余裕です、文字が思いつく限りですけど。

'10'.to_i [*'0'..'9', *'A'..'Z', '?']   #=> 37

ざっとこんなところです。 これが実用に使えたら大したもんです。