我在变量中设置了一个tcl字符串.我想将它视为十六进制转换为二进制.任何人都可以帮助我实现这一目标.
这是我在做的事情:
$ /usr/bin/tclsh8.5
% set a a1a2a3a4a5a6
a1a2a3a4a5a6
% set b [ string range $a 0 3 ]
a1a2
Run Code Online (Sandbox Code Playgroud)
现在我想要变量"b"的a1a2值应该被视为0xa1a2,这样我就可以将它转换为二进制.请帮我解决这个问题.
如果您使用的是Tcl 8.6,那么这binary decode hex
是最好的选择:
binary decode hex $b
Run Code Online (Sandbox Code Playgroud)
如果您使用的是旧版本的Tcl,则必须使用binary format
带有H格式说明符:
binary format H* $b
Run Code Online (Sandbox Code Playgroud)
您可以将生成的字节数组写入文件或通过套接字等发送,但如果要将其显示为文本,我建议先将其转换为字符串:
encoding convertfrom utf-8 [binary format H* $b]
Run Code Online (Sandbox Code Playgroud)