如何将十六进制数字的字符串转换为它在Lua中表示的值

时间:2011-08-23 18:09:23

标签: string lua hex

我正在阅读很多十六进制数据行。它们以字符串形式出现,我将它们解析为line_codes,告诉我如何处理其余数据。一行设置地址的最重要字(MSW),另一行设置最低有效字(LSW)。

然后我需要将它们连接在一起,这样如果MSW =“00ff”并且LSW =“f10a” 地址是00fff10a。

这一切都很好,但后来我应该检查地址是否在某组值之间:

if address <= "007FFFh" and address >= "000200h" then
    print "I'm in"
end

大家都知道,Lua不喜欢这个,因为它使用<=>=使用字符串时出错。

如果有一种方法可以将字符串转换为十六进制,那么“FFFF”将变为0xFFFF?

1 个答案:

答案 0 :(得分:31)

您使用tonumber

local someHexString = "03FFACB"
local someNumber = tonumber(someHexString, 16)

请注意,数字不是十六进制数。它们也不是十进制,八进制或其他任何东西。他们只是数字。数字0xFF与255的数字相同。“FF”和“255”是相同数字的字符串表示。