在Lua 4中将十进制转换为十六进制?
问题描述:
我发现这个公式将十进制数为十六进制颜色值转换在Lua:在Lua 4中将十进制转换为十六进制?
http://lua-users.org/lists/lua-l/2004-09/msg00054.html
不过,我对公式几个问题:
- 我输入需要之间进行标准化0到1而不是0到255.这是一个问题吗?
- 我坚持与Lua 4.01而不是最新版本。我无法升级。这是一个问题吗?
谢谢!!
答
在Lua 5.x中,您可以使用string.format函数和%x
格式说明符将整数转换为它们的十六进制表示形式。在你的情况是这样的:
local input = 0.5
local output = string.format("%x", input * 256) -- "80"
我不知道的Lua 4.0.1好,所以我不能告诉你,如果这个功能是可用的(也许是下一个不同的名称)。也就是说,如果没有,那么你可以通过将它变成一个使用sscanf
的C函数来解决这个问题。
你确定它的Lua 4.1而不是5.1吗? Lua 5.1仍然很常用(因为它的LuaJIT支持Lua版本),但Lua 4.1非常老,您将很难找到好的文档! https://www.lua.org/versions.html – hugomg
根据[Lua网站](https://www.lua.org/versions.html),没有这样的版本4.1 –
您可以举例输入和你想要的输出?我通常会看到十六进制用于整数,因此将它们用于0到1之间的事情有点不寻常。 – hugomg