Apakah ada cara yang dibangun untuk mengubah integer di Ruby menjadi setara heksadesimalnya?
Sesuatu seperti kebalikan dari String#to_i
:
"0A".to_i(16) #=>10
Mungkin seperti:
"0A".hex #=>10
Saya tahu cara memutar sendiri, tetapi mungkin lebih efisien untuk menggunakan fungsi bawaan Ruby.
ruby
hex
base-conversion
Matt Haughton
sumber
sumber
Bagaimana dengan menggunakan
%
/sprintf
:sumber
"#%02x%02x%02x" % [255, 0, 10] #=> "#ff000a"
- Butuh saya sedikit untuk mencari cara mengirim beberapa argumen.[255, 0, 10].map{|x| '%02x'%x}.join
Untuk meringkas:
sumber
Inilah pendekatan lain:
lihat dokumentasi untuk di
sprintf
sini: http://www.ruby-doc.org/core/classes/Kernel.html#method-i-sprintfsumber
sprintf("%02X", 10)
akan menjadi huruf besar karena huruf besar X. Tidak perlu metode huruf besar untuk dipanggil. Bagian spesifik dari kernel adalah ini: ruby-doc.org/core-1.9.3/Kernel.html#method-i-formatKalau-kalau Anda memiliki preferensi untuk bagaimana angka negatif diformat:
sumber