tcl - 如何将 tcl 字符串视为十六进制数并将其转换为二进制?

标签 tcl

我在变量中设置了一个 tcl 字符串。我想将其视为十六进制以转换为二进制。任何人都可以帮助我实现这一目标。

这就是我正在做的事情:

$ /usr/bin/tclsh8.5
% set a a1a2a3a4a5a6
a1a2a3a4a5a6
% set b [ string range $a 0 3 ]
a1a2

现在我希望变量“b”的 a1a2 值应被视为 0xa1a2,以便我可以将其转换为二进制。请帮我解决这个问题。

最佳答案

如果您使用的是 Tcl 8.6,那么二进制解码十六进制是最佳选择:

binary decode hex $b

如果您使用旧版本的 Tcl,则必须使用带有 H 格式说明符的二进制格式:

binary format H* $b

您可以将生成的字节数组写入文件或通过套接字等发送它,但如果您想将其显示为文本,我建议首先将其转换为字符串:

encoding convertfrom utf-8 [binary format H* $b]

关于tcl - 如何将 tcl 字符串视为十六进制数并将其转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14602065/

相关文章:

tcl - 如何在 Expect 中保存和解析命令输出?

tcl - 如何查看tcl中CPU的数量?

tcl - 在 TCL 命令行中传递参数

tomcat - 在 apache tomcat 上运行 Tcl

c - 创建TCL C channel 时使用Tcl_SetChannelOption函数

sqlite - sqlite3 eval中的tcl var替换

regex - 限制 regsub 命令的数量以删除列表中的空格、行尾或回车符

tcl - upvar、TclOO 和 next -(可能)意外行为的解释

linux - 我如何写入生成的终端?

c - 相互依赖的TCL扩展