我一直在阅读这个页面 (除其他外),但仍然找不到我的答案.
我试图让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表示?
("简单"意味着它已经内置于语法中;不是我必须编写的函数)
ps,如果我能将A, B, C, D, E, F
字符作为大写字母,那就太好了.
string.format("%02X", 14))
0
用于填充零而不是空格.
2
对于两个字符的强制宽度(不是1
在您的示例中).
X
用于大写字母输出而不是小写字母.
应该指出的是,基本上没有一个答案是Lua特定的,因为那些是printf标准序列和格式选项.
该Lua的参考手册说:
格式字符串遵循与printf系列标准C函数相同的规则.唯一的区别是不支持选项/修饰符*,l,L,n,p和h,并且有一个额外的选项q.
所以我们可以推断出x
和X
格式说明符可以使用通常的宽度和前导零修饰符.
同样的原则适用于许多Lua库函数.您将经常需要参考Lua参考中提到的相关标准C运行时库函数以获得完整的理解.