2008-09-17 20 views

cevap

280

Sen to_s 10 dışında bir üs verebilir:

sprintf("%02x", 10).upcase 

belgelerine bakınız: Burada

10.to_s(16) #=> "a" 
+3

da yapabiliriz. Bu aradığım cevap buydu, ancak bağlı sayfa str.to_s => str , parametreleri kabul etmediği şeklinde belirtilmiştir ve "Alıcıyı döndürür." Sadece belge olarak , ancak –

+0

çalışmak gibi görünüyor Bu kopya yapıştırmak için ders hakkında bir şey yazmak için üzgünüm argümanlar almaz ama Fixnum üzerinde yapar :) – Jean

+2

Ah, Ben bir .to_s yöntemi ve olabilir için Integer altında bakıyordu Bir tane bulmuyorum. Bir sonraki sefer Fixnum'a bakacağım –

82

%/sprintf kullanma hakkında nasıl

i = 20 
"%x" % i #=> "14" 
+13

sayesinde Bana bir sabit uzunluğa alacağı şey gerekiyordu '0' ile başlayan dizge. örn .: "% 02X"% 10 # => "0A" –

+37

Ve diğer yakut yeni başlayanlar için: "#% 02x% 02x% 02x"% [255, 0, 10] # => "# ff000a" - bana birkaç tane gönderilmem gerektiğini anladım. – ANeves

+1

Bu, Ruby'nin son derece harika bir pasajı! – OzBandit

64

Özetlemek gerekirse :

p 10.to_s(16) #=> "a" 
p "%x" % 10 #=> "a" 
p "%02X" % 10 #=> "0A" 
p sprintf("%02X", 10) #=> "0A" 
p "#%02X%02X%02X" % [255, 0, 10] #=> "#FF000A" 
+0

Rakam sayısı biçimlendirmesi için teşekkürler. Unuttum :) – onetwopunch

+0

günümü kurtardı. güzel RGB dönüşümü –

2

biçimlendirilmiş Negatif sayıların nasıl desteklemeyi tercih ediyoruz hemen söyleyelim: Bu göstermek için

p "%x" % -1 #=> "..f" 
p -1.to_s(16) #=> "-1" 
İlgili konular