binary format 就是将数值根据规定模式对 Tcl 的普通数据进行二进制压缩,
而 binary scan 作用相反,是从二进制数值恢复 Tcl 普通数据。
下面列举了这两个 binary 命令的作用。 首先用 binary format 对数值字符串”25664”进行二进制压缩,然后从压缩了的二进制值用 binary scan 恢复。
>set b [binary format "s" 25664]
=> @d ;#整数 25664 以十六进制表示为 6440H。 “s”为格式说明 ;
#符,按照由低到高字节顺序存储。
>puts $b ;#数值被压缩为两个字节,输出的结果为两个压缩字节对
=> @d ;#应的两个字符,@的 ASCII 码为 40H,d 的 ASCII 码为 64H
>binary scan $b "s" var
=> 1 ;#返回转换成功的次数
>puts $var ;#binary scan 从二进制数 b 中将数值恢复并存入变量 var
=> 25664
>binary scan 1 c var ;#从字符 1 中恢复数值。字符 1 的 ASCII 码=31H,31H 对应十
=>1 ;#进制整数为 49
>puts $var
=> 49
[语法]: binary format spec value1 ?value2 ...?
binary scan str spec var1 ?var2 ...?