我正在阅读很多十六进制数据行。它们以字符串形式出现,我将它们解析为line_codes,告诉我如何处理其余数据。一行设置地址的最重要字(MSW),另一行设置最低有效字(LSW)。
然后我需要将它们连接在一起,这样如果MSW =“00ff”并且LSW =“f10a” 地址是00fff10a。
这一切都很好,但后来我应该检查地址是否在某组值之间:
if address <= "007FFFh" and address >= "000200h" then
print "I'm in"
end
大家都知道,Lua不喜欢这个,因为它使用<=
和>=
使用字符串时出错。
如果有一种方法可以将字符串转换为十六进制,那么“FFFF”将变为0xFFFF?
答案 0 :(得分:31)
您使用tonumber
:
local someHexString = "03FFACB"
local someNumber = tonumber(someHexString, 16)
请注意,数字不是十六进制数。它们也不是十进制,八进制或其他任何东西。他们只是数字。数字0xFF与255的数字相同。“FF”和“255”是相同数字的字符串表示。