整数到十六进制的转换

Int to hex conversion

关于以下行(来自here):

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

我不明白 7929856 做了什么来获得值 "00790000"。我知道 0x790000 是十六进制的 7929856,但我不知道两个前导零是从哪里来的。这只是一种将数字转换为十六进制的方法吗?有人可以解释那里发生了什么吗?

我不是很熟悉Ruby,但我的猜测(根据 C 中类似的语法)是“%.8x”中的“8”表示显示 8 位数字。

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

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

结果总是至少有 8 位数字,也许更多。