Existe uma maneira integrada de converter um número inteiro em Ruby em seu equivalente hexadecimal?
Algo como o oposto de String#to_i
:
"0A".to_i(16) #=>10
Como talvez:
"0A".hex #=>10
Eu sei como rodar sozinho, mas provavelmente é mais eficiente usar uma função interna do Ruby.
ruby
hex
base-conversion
Matt Haughton
fonte
fonte
Que tal usar
%
/sprintf
:fonte
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- Levei um pouco para descobrir como enviar vários argumentos.[255, 0, 10].map{|x| '%02x'%x}.join
Para resumir:
fonte
Aqui está outra abordagem:
consulte a documentação
sprintf
aqui: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintffonte
sprintf("%02X", 10)
será maiúsculo por causa do X maiúsculo. Não é necessário chamar o método upcase. A seção específica do kernel é esta: ruby-doc.org/core-1.9.3/Kernel.html#method-i-formatApenas no caso de você preferir como os números negativos são formatados:
fonte