Tcl 将二进制数据变量转换为字节列表

Tcl 将二进制数据变量转换为字节列表,tcl,Tcl,我有一个二进制数据变量,它是从文件set data[read$fp 5]读取的。假设它是:0102030405,以十六进制表示 如何将其转换为如下所示的字节列表: {0x01 0x02 0x03 0x04 0x05} 我有一个函数,需要二进制数据作为列表。我想我需要的是二进制扫描,但我不知道如何使用它二进制扫描是您需要的工具。您可能想这样做: binary scan $data "cu*" byteValues 它在字节值中生成无符号字节值列表。(b转换生成的位字符串不是您

我有一个二进制数据变量,它是从文件
set data[read$fp 5]
读取的。假设它是:
0102030405
,以十六进制表示

如何将其转换为如下所示的字节列表:
{0x01 0x02 0x03 0x04 0x05}


我有一个函数,需要二进制数据作为列表。我想我需要的是二进制扫描,但我不知道如何使用它<代码>二进制扫描是您需要的工具。您可能想这样做:

binary scan $data "cu*" byteValues
它在字节值中生成无符号字节值列表。(
b
转换生成的位字符串不是您想要的。)例如:

% binary scan Abc "cu*" theValues
1
% puts $theValues
65 98 99

如果您正在处理旧版本的Tcl,则需要
c*
而不是
cu*
,然后每个字节的顶部位就是符号位。结果在技术上是正确的,但我从未发现这是非常有用的。

二进制扫描的结果始终是填充的字段数。在这种情况下,它总是1,所以不是很有趣。