Czy istnieje wbudowany sposób na konwersję liczby całkowitej w Rubim na jej szesnastkowy odpowiednik?
Coś w rodzaju przeciwieństwa String#to_i
:
"0A".to_i(16) #=>10
Może jak:
"0A".hex #=>10
Wiem, jak tworzyć własne, ale prawdopodobnie bardziej efektywne jest użycie wbudowanej funkcji Ruby.
ruby
hex
base-conversion
Matt Haughton
źródło
źródło
Co powiesz na użycie
%
/sprintf
:źródło
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- zajęło mi trochę wymyślenie, jak wysłać kilka argumentów.[255, 0, 10].map{|x| '%02x'%x}.join
Podsumowując:
źródło
Oto inne podejście:
zobacz dokumentację
sprintf
tutaj: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintfźródło
sprintf("%02X", 10)
będzie pisane wielkimi literami z powodu wielkich liter X. Nie ma potrzeby wywoływania metody upcase. Konkretna sekcja jądra jest następująca: ruby-doc.org/core-1.9.3/Kernel.html#method-i-formatNa wypadek, gdybyś preferował sposób formatowania liczb ujemnych:
źródło