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
#