Int到十六进制转换

时间:2015-02-05 20:39:39

标签: ruby hex string-formatting

关于以下行(来自here):

"%.8x" % 7929856 #=> "00790000"

我不了解7929856为获取值"00790000"所做的工作。我知道0x790000是十六进制的7929856,但我不知道两个前导零的来源。这只是将数字转换为十六进制的方法吗?有人可以解释那里发生的事情吗?

2 个答案:

答案 0 :(得分:3)

我对Ruby并不十分熟悉,但我的猜测(来自C中的类似语法)是“%。8x”中的“8”表示显示8位数。

答案 1 :(得分:3)

"%.8x"%x,指定了最小精度。在这种情况下,8位数。所以,如果你给它:

"%.8x" % 1
> '00000001'

结果总是至少有8位数字,可能更多。