Существует ли встроенный способ преобразования целого числа в Ruby в его шестнадцатеричный эквивалент?
Что-то вроде противоположности String#to_i
:
"0A".to_i(16) #=>10
Как, возможно,:
"0A".hex #=>10
Я знаю, как делать свои собственные, но, вероятно, более эффективно использовать встроенную функцию Ruby.
ruby
hex
base-conversion
Мэтт Хотон
источник
источник
Как насчет использования
%
/sprintf
:источник
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- Мне понадобилось немного времени, чтобы понять, как отправить несколько аргументов.[255, 0, 10].map{|x| '%02x'%x}.join
Подвести итоги:
источник
Вот еще один подход:
см. документацию
sprintf
здесь: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintfисточник
sprintf("%02X", 10)
будет в верхнем регистре из-за верхнего регистра X. Нет необходимости вызывать метод upcase. Конкретный раздел ядра таковНа тот случай, если вы предпочитаете форматировать отрицательные числа:
источник