• ベストアンサー

rubyでn進数(16進数以上)の文字列を扱いたい

rubyでn進数(16進数以上)の文字列を扱いたいです。 例えば、36進数で4桁を数値を、0~1679616(36^4)通り順に 表示したいです。 36進数を表す文字は、('a'..'z').to_a + ('0'..'9').to_aの様に定義したいと思います。 0~36^4へとインクリメントしつつ、その値を上記で定義した文字を使った 文字列へと変換していけば良いとは、思うのですが、うまいこと書けませんでした。 ご教授の程、よろしくお願いいたします。 

質問者が選んだベストアンサー

  • ベストアンサー
  • sholmes
  • ベストアンサー率81% (89/109)
回答No.3

勉強目的で自分もチャレンジしてみました。なんとなく動いているかな? to_sはBignum等にも都度書いてやらないと使えません。 36までだったら標準のメソッドへ投げて、それ以上で一覧表にある限りはこの中で処理をします。 http://ideone.com/J6ZiY ちゃんと検証とる程体力が残ってませんが・・・少なくとも実用に使えるしろものではありません。

kingfruits
質問者

お礼

ご回答ありがとう御座いました。大変参考になりました。

その他の回答 (2)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

> 大文字や記号なども入れて、72進数、さらには?や!なども入れてそれ以上ってののもこれで可能なのですか? マニュアルを読む気がまったくないのですね。 でも貼っておきましょう。 http://doc.okkez.net/static/192/method/String/i/to_i.html

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

to_s(36)やらto_i(36) ruby 1.7以降で利用可能。 詳しくはrubyのリファレンスをご覧ください。

参考URL:
http://www.ideone.com/g91gG
kingfruits
質問者

補足

osamuyさん、ご回答有難うございます。 大文字や記号なども入れて、72進数、さらには?や!なども入れてそれ以上ってののもこれで可能なのですか?

関連するQ&A

専門家に質問してみよう