Ruby sprintf,关于“%02x”中的“2”

sprintf("%02x", c) 

我知道这段代码将十进制转换为hex,但“2”是什么意思?

0是填充字符,而2是宽度说明符,指定要打印的字符数。 它旨在作为最小字符数,因此02将始终至少打印2个字符,如果没有其他数据显示,它们将为零。