Existe-t-il un moyen intégré de convertir un entier dans Ruby en son équivalent hexadécimal?
Quelque chose comme le contraire de String#to_i
:
"0A".to_i(16) #=>10
Comme peut-être:
"0A".hex #=>10
Je sais comment rouler le mien, mais il est probablement plus efficace d'utiliser une fonction Ruby intégrée.
ruby
hex
base-conversion
Matt Haughton
la source
la source
Que diriez-vous d'utiliser
%
/sprintf
:la source
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- m'a pris un peu pour comprendre comment envoyer plusieurs arguments.[255, 0, 10].map{|x| '%02x'%x}.join
Résumer:
la source
Voici une autre approche:
voir la documentation
sprintf
ici: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintfla source
sprintf("%02X", 10)
sera en majuscule à cause du X majuscule. Pas besoin d'appeler la méthode upcase. La section spécifique du noyau est la suivante: ruby-doc.org/core-1.9.3/Kernel.html#method-i-formatJuste au cas où vous auriez une préférence pour la façon dont les nombres négatifs sont formatés:
la source