Method: Fixnum#digits_for_new_base
- Defined in:
- lib/quality_extensions/fixnum/change_base.rb
#digits_for_new_base(base, padding = 0) ⇒ Object
Converts to a new base, returning the digits as an array.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/quality_extensions/fixnum/change_base.rb', line 12 def digits_for_new_base(base, padding = 0) digits = [] if self == 0 digits = [0] else remainder = self max_exponent = (Math.log(self)/Math.log(base)).to_i max_exponent.downto(0) do |exp| #puts "#{remainder} / #{base**exp}" digit, remainder = remainder.divmod(base**exp) digits << digit end end digits.pad(-padding, 0) end |