是否有更好的方法來顯示以十六進制數字顯示前導0
?我想:如何以十六進制數字打印前導零
i.to_s(16)
但
2.to_s(16) #=> "2"
,我希望"02"
。我試圖打印格式:
"%02x" % i
該協會致力於2
,但
"%02x" % 256 #=> "100"
,我想"0100"
。所以,我想出了這個:
class Integer
def to_hex_string
("%0x" % self).size % 2 == 0 ? "%0x" % self : "%0#{("%0x" % self).size+1}x" % self
end
end
它的工作原理:
2.to_hex_string #=> "02"
256.to_hex_string #=> "0100"
它的工作原理也與Bignumber
類,但它看起來很奇怪,這樣一個簡單的請求需要這樣的伎倆。有什麼更好的想法
如果你只想把一個零在號碼前面,嘗試' 「0#{i.to_s(16)}」'或' 「0%X」 %i'。但是這通常表示一個八進制數。常用的十六進制前綴是「0x」,可以使用「%#x」%i「打印。 – Stefan 2014-10-28 11:15:34
感謝您的評論,但似乎to_s(16)與BigNumber – Bruno 2014-10-31 16:16:02