2008-09-17 113 views

回答

280

你可以給to_s超過10以外的鹼基:

10.to_s(16) #=> "a" 
82

如何使用%/sprintf

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

感謝展示這一點,我需要的東西,會拿一個固定長度字符串預置爲'0'。例如:「%02X」%10#=>「0A」 – 2008-10-31 13:07:30

+37

對於其他ruby新手:`「#%02x%02x%02x」%[255,0,10]#=>「#ff000a」` - 花了我一些時間來弄清楚如何發送幾個參數。 – ANeves 2011-03-22 19:08:30

+1

這是一個非常棒的Ruby代碼片段! – OzBandit 2012-11-09 23:40:40

64

總結:

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" 
2

萬一你有了一個負數的格式偏好:

p "%x" % -1 #=> "..f" 
p -1.to_s(16) #=> "-1" 
相關問題