binarybinarybinarybinary
Section: Tcl Built-In Commands (3tcl)
Updated: 8.0
Index Return to Main Contents
NAMENAMENAMENAME
binary - 从(向)二进制串插入和提取字段
总览总览总览总览 SYNOPSISSYNOPSISSYNOPSISSYNOPSIS
binary formatbinary formatbinary formatbinary format formatString ?arg arg ...?
binary scanbinary scanbinary scanbinary scan string formatString ?varName varName ...?
描述描述描述描述 DESCRIPTIONDESCRIPTIONDESCRIPTIONDESCRIPTION
这个命令提供操纵二进制数据的设施。第一种形式是 binary formatbinary formatbinary formatbinary format,从普通的 Tcl 值来建立一个二进
制串。例如,给出值 16 和 22,可以产生一个8字节的二进制串,由两个4字节的整数组成。第二种形式
是 binary scanbinary scanbinary scanbinary scan,做相反的事: 从一个二进制串中提取出数据并作为通常的 Tcl 字符串值而返回。
二二二二进进进进制化制化制化制化 BINARY FORMATBINARY FORMATBINARY FORMATBINARY FORMAT
binary formatbinary formatbinary formatbinary format 命令生成一个二进制串,其格式由 formatString 指定,它的内容来(自在后面)增添的参
数。返回结果二进制值。
formatString 由零个或多个字段说明符(specifier)的序列组成,用零个或多个空格分隔。每个说明符都是
一个单独的类型字符,跟随着一个可选的数值 count。多数字段说明符消耗(consume)一个参数来获取被格
式化的值。类型字符指定如何格式化值。count 典型的指示从值中接受了多少个指定类型的单项(item)。如
果count 存在,则是一个非负十进制整数或 ****,星号通常指示使用在值中所有的单项。如果参数的个数不匹
配在消耗参数的这些格式串中的字段的个数,则产生一个错误。
每个类型-数目(type-count)对在二进制串上移动一个假想的游标,在当前的位置上存储一些字节并且游标
前进到最近存储的字节的紧后面。游标初始在位置 0 也就是在数据的开始(端)。类型可以是下列字符中的
任意一个:
aaaa 在输出串中存储长度是 count 的一个字符串。如果 arg 比 count 的字节数少,则有增补的零字节来
填充字段。如果 arg 比指定长度多,忽略额外的字符。如果 count 是 ****, 则格式化在 arg 中的所有
字节。如果省略了 count ,则格式化一个字符。例如,
binary format a7a*a alpha bravo charliebinary format a7a*a alpha bravo charliebinary format a7a*a alpha bravo charliebinary format a7a*a alpha bravo charlie
将返回等价于 alpha\000\000bravocalpha\000\000bravocalpha\000\000bravocalpha\000\000bravoc的一个串。
AAAA 除了使用空格而不是空字符来填充之外,这种形式同于 aaaa。例如,
binary format A6A*A alpha bravo charliebinary format A6A*A alpha bravo charliebinary format A6A*A alpha bravo charliebinary format A6A*A alpha bravo charlie
将返回 alpha bravocalpha bravocalpha bravocalpha bravoc.
bbbb 在输出串中存储 cou