How to convert a number to any base in Ruby

1 Answer

0 votes
def to_base(n, base)
  digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  raise "Base must be between 2 and 36" if base < 2 || base > 36
  return "0" if n == 0

  result = ""

  while n > 0
    remainder = n % base
    result << digits[remainder]
    n /= base
  end

  result.reverse
end

# Main program
begin
  number = 255

  puts "#{number} in base 2  = #{to_base(number, 2)}"
  puts "#{number} in base 8  = #{to_base(number, 8)}"
  puts "#{number} in base 16 = #{to_base(number, 16)}"
  puts "#{number} in base 36 = #{to_base(number, 36)}"
rescue => e
  puts "Error: #{e.message}"
end


# run:
#
# 255 in base 2  = 11111111
# 255 in base 8  = 377
# 255 in base 16 = FF
# 255 in base 36 = 73
#

 



answered 3 days ago by avibootz
...