Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # encoding: UTF-8
- CHARS = ('A'..'Z').to_a
- def number_to_char(number)
- raise ArgumentError if number < 1
- result = ''
- while number > 0
- number, remainder = (number - 1).divmod(26)
- result.prepend(CHARS[remainder])
- end
- result
- end
- def char_to_number(char)
- raise ArgumentError unless char =~ /^[A-Z]*$/
- char.each_char.inject(0) { |sum, c| sum * 26 + CHARS.index(c) + 1 }
- end
- input = 'XFD'
- number = char_to_number(input)
- char = number_to_char(number)
- puts "Input: #{input} to Number: #{number} to Char: #{char}"
Add Comment
Please, Sign In to add comment