¿Existe una forma integrada de convertir un entero en Ruby en su equivalente hexadecimal?
Algo como lo contrario de String#to_i
:
"0A".to_i(16) #=>10
Como tal vez:
"0A".hex #=>10
Sé cómo rodar el mío, pero probablemente sea más eficiente usar una función incorporada de Ruby.
ruby
hex
base-conversion
Matt Haughton
fuente
fuente
¿Qué hay de usar
%
/sprintf
:fuente
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- me llevó un poco descubrir cómo enviar varios argumentos.[255, 0, 10].map{|x| '%02x'%x}.join
Para resumir:
fuente
Aquí hay otro enfoque:
vea la documentación
sprintf
aquí: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintffuente
sprintf("%02X", 10)
será mayúscula debido a la X mayúscula. No es necesario llamar al método de mayúsculas. La sección específica del núcleo es esta: ruby-doc.org/core-1.9.3/Kernel.html#method-i-formatEn caso de que prefiera el formato de los números negativos:
fuente