在Lua 4中将十进制转换为十六进制?

在Lua 4中将十进制转换为十六进制?

问题描述:

我发现这个公式将十进制数为十六进制颜色值转换在Lua:在Lua 4中将十进制转换为十六进制?

http://lua-users.org/lists/lua-l/2004-09/msg00054.html

不过,我对公式几个问题:

  1. 我输入需要之间进行标准化0到1而不是0到255.这是一个问题吗?
  2. 我坚持与Lua 4.01而不是最新版本。我无法升级。这是一个问题吗?

谢谢!!

+0

你确定它的Lua 4.1而不是5.1吗? Lua 5.1仍然很常用(因为它的LuaJIT支持Lua版本),但Lua 4.1非常老,您将很难找到好的文档! https://www.lua.org/versions.html – hugomg

+0

根据[Lua网站](https://www.lua.org/versions.html),没有这样的版本4.1 –

+0

您可以举例输入和你想要的输出?我通常会看到十六进制用于整数,因此将它们用于0到1之间的事情有点不寻常。 – hugomg

在Lua 5.x中,您可以使用string.format函数和%x格式说明符将整数转换为它们的十六进制表示形式。在你的情况是这样的:

local input = 0.5 
local output = string.format("%x", input * 256) -- "80" 

我不知道的Lua 4.0.1好,所以我不能告诉你,如果这个功能是可用的(也许是下一个不同的名称)。也就是说,如果没有,那么你可以通过将它变成一个使用sscanf的C函数来解决这个问题。