3

我需要帮助来找出 Tcl 中内置的十六进制到二进制转换;我目前正在使用 TCL 8.5。

类似于十六进制到十进制的转换,我们是否有十六进制到 bin 任何一种用于进行转换的线性语法?

4

1 回答 1

8

我不太确定二进制是什么意思;你的意思是字节序列0还是1字符序列?

使用以下命令将十六进制转换为字节序列(这是一个恰好只有 to 范围内的字符的\u0000字符串\u00ffbinary format

set hex "61626364"
set bytes [binary format H* $hex]
puts $bytes
# Prints 'abcd'

要转换为表示位的数字序列,请按上述转换为二进制字符串,然后用于binary scan转换回:

set hex "61626364"
# No option to get the value without writing it to a variable
binary scan [binary format H* $hex] B* bits
puts $bits
# Prints '01100001011000100110001101100100'

以上所有工作都在 Tcl 8.5 上运行。请注意,您需要使用大写字母 H*B*或者代码会尝试做一些它声称是“小端”的事情(实际上可能是这样),这让我很困惑。

于 2013-07-26T08:54:46.590 回答