在16进制字符串前使用0填充以达到6位长度

我有这段代码:

function dec2hex(IN)
  local OUT
  OUT = string.format("%x",IN)
  return OUT
end

我需要将 IN 填充零直到字符串长度为6。

我不能使用 String.UtilsPadLeft。这是在一个名为 Watchmaker 的应用程序中使用 Lua 精简版。

点赞
用户1944004
用户1944004

Lua 中的字符串格式基本上与 C 语言相同。因此,要在数字前面填充零,只需使用 %0n,其中 n 是要填充的位数。例如

print(string.format("%06x", 16^4-1))

将打印 00ffff

有关详细信息,请参见《Lua 编程》第 20 章 字符串库string.format 的参考文献以及 C 参考文献中的 printf 函数族

2018-09-26 08:12:53
用户4170264
用户4170264

如果您在本地存储格式字符串,则可以调用格式化字符串的格式方法,@Henri 的示例结果为("%06x"):format(0xffff)

print(("%06x"):format(0xffff)) -- 输出为 `00ffff`

您可以用 十六进制格式 写数字,这与C语言一样。

2019-05-22 09:08:20