我一直在阅读THIS PAGE(其中包括),但仍无法找到答案。
我试图让Lua将8位值(即0到255之间的整数)转换为相应Hex字符的2字节Ascii表示
我知道如何使用的唯一Lua语法就是这个......
MyString = string.format("%1x", That_Number )
...但是,当数字为0到15时,该语法会给我:1 2 3 4 5 6 7 8 9 a b c d e f
......虽然这是我真正想要的:01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
我的问题:是否有一个简单的语法来保证我的“两位数”Ascii表示?
(“简单”表示它已经内置于语法中;不是我必须编写的函数)
p.s。如果我能将A, B, C, D, E, F
个字符作为大写,那就太好了。
答案 0 :(得分:6)
string.format("%02X", 14))
0
用于填充零而不是空格。
2
的强制宽度为两个字符(不是1
,如示例所示)。
X
用于大写字母输出而不是小写。
应该指出的是,基本上没有一个答案是Lua特定的,因为它们是printf标准序列和格式选项。
格式字符串遵循与printf系列标准C函数相同的规则。 唯一的区别是选项/修饰符*,l,L,n,p和h不是 支持,并有一个额外的选项,q。
因此我们可以推断出x
和X
格式说明符可以使用通常的宽度和前导零修饰符。
同样的原则适用于许多Lua库函数。您将经常需要参考Lua参考中提到的相关标准C运行时库函数以获得完整的理解。