我们在tcl中有内置的十六进制到二进制转换吗?

时间:2013-07-26 06:41:10

标签: tcl

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

与hex到dec转换类似,我们是否有hex到bin 任何一个用于进行转换的线性语法?

1 个答案:

答案 0 :(得分:8)

我不太清楚二进制是什么意思;你的意思是一系列字节或一系列01字符?

使用\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*,否则代码会尝试执行它声称为“小端”的内容(实际上可能是这样)并且这让我很困惑。