2

我在变量中设置了一个 tcl 字符串。我想把它当作一个十六进制来转换成它的二进制。任何人都可以帮助我实现这一目标。

这是我正在做的事情:

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

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

4

1 回答 1

5

如果您使用的是 Tcl 8.6,那么binary decode hex是最好的选择:

binary decode hex $b

如果您使用的是旧版本的 Tcl,那么您必须使用binary formatH 格式说明符:

binary format H* $b

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

encoding convertfrom utf-8 [binary format H* $b]
于 2013-01-30T12:00:16.753 回答