我需要帮助才能在Tcl中找出内置的十六进制到二进制转换;我目前正在使用TCL 8.5。
与hex到dec转换类似,我们是否有hex到bin 或 任何一个用于进行转换的线性语法?
答案 0 :(得分:8)
我不太清楚二进制是什么意思;你的意思是一系列字节或一系列0
和1
字符?
使用\u0000
命令完成从十六进制转换为字节序列(恰好只有\u00ff
到binary 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*
,否则代码会尝试执行它声称为“小端”的内容(实际上可能是这样)并且这让我很困惑。