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

Sam*_*rdo 21 string lua hex

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

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

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

if address <= "007FFFh" and address >= "000200h" then
    print "I'm in"
end
Run Code Online (Sandbox Code Playgroud)

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

如果有一种方法我可以将字符串转换为十六进制,这样"FFFF"将变为0xFFFF?

Nic*_*las 31

你用tonumber:

local someHexString = "03FFACB"
local someNumber = tonumber(someHexString, 16)
Run Code Online (Sandbox Code Playgroud)

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