くまくらと申します。

Ruby にかぎらずプログラミングの学習において、
整数値の16進変換は基礎的な課題ですよね。
それをふまえて元のソースを修正すると・・

class Integer
  def to_x
    hex = %w(0 1 2 3 4 5 6 7 8 9 a b c d e f)
    str = ""
    tmp = self.dup
    begin
      val = tmp % 16
      str = hex[val] + str 
      tmp /= 16
    end while 0 < tmp
    str = "0x" + str
  end
end

みたいな感じになるとおもいます。
#ちょっと型変換とかが不安かも・・

下位の桁から求めると、桁数の管理が不要になります。

これをもっと Ruby らしいかっこいいコードにすると
どういう風になるのかということが知りたかったのなら
話は別ですが・・・

--

mitsuakik / po.mmm.ne.jp