gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:38:10 26 4
gpt4 key购买 nike

我一直在读THIS PAGE (除其他外)但仍然找不到我的答案。

我试图让 Lua 将 8 位值(即从 0 到 255 的整数)转换为相应十六进制字符的 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 字符写成大写就好了。

最佳答案

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

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

应该指出的是,基本上这个答案都不是 Lua 特定的,因为那些是 printf标准序列和格式选项。

Lua reference manual说:

The format string follows the same rules as the printf family of standard C functions. The only differences are that the options/modifiers *, l, L, n, p, and h are not supported and that there is an extra option, q.

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

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

关于Lua,来自二进制值的 Ascii 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com