Lua,Ascii字符串来自二进制值

时间:2013-12-26 20:46:32

标签: lua

我一直在阅读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个字符作为大写,那就太好了。

1 个答案:

答案 0 :(得分:6)

string.format("%02X", 14))

0用于填充零而不是空格。 2的强制宽度为两个字符(不是1,如示例所示)。 X用于大写字母输出而不是小写。

应该指出的是,基本上没有一个答案是Lua特定的,因为它们是printf标准序列和格式选项。

Lua reference manual说:

  

格式字符串遵循与printf系列标准C函数相同的规则。   唯一的区别是选项/修饰符*,l,L,n,p和h不是   支持,并有一个额外的选项,q。

因此我们可以推断出xX格式说明符可以使用通常的宽度和前导零修饰符。

同样的原则适用于许多Lua库函数。您将经常需要参考Lua参考中提到的相关标准C运行时库函数以获得完整的理解。