変数に tcl 文字列が設定されています。16進数として扱い、2進数に変換したい。誰でも私がこれを達成するのを手伝ってくれますか?
これが私がやっていることです:
$ /usr/bin/tclsh8.5
% set a a1a2a3a4a5a6
a1a2a3a4a5a6
% set b [ string range $a 0 3 ]
a1a2
ここで、変数 "b" の a1a2 値を 0xa1a2 として扱い、バイナリに変換できるようにします。これを解決するのを手伝ってください。
変数に tcl 文字列が設定されています。16進数として扱い、2進数に変換したい。誰でも私がこれを達成するのを手伝ってくれますか?
これが私がやっていることです:
$ /usr/bin/tclsh8.5
% set a a1a2a3a4a5a6
a1a2a3a4a5a6
% set b [ string range $a 0 3 ]
a1a2
ここで、変数 "b" の a1a2 値を 0xa1a2 として扱い、バイナリに変換できるようにします。これを解決するのを手伝ってください。
Tcl 8.6 を使用している場合は、次の方法binary decode hex
が最適です。
binary decode hex $b
古いバージョンの Tcl を使用している場合はbinary format
、H フォーマット指定子を使用する必要があります。
binary format H* $b
結果のバイト配列をファイルに書き込んだり、ソケットなどを介して送信したりできますが、テキストとして表示したい場合は、最初に文字列に変換することをお勧めします。
encoding convertfrom utf-8 [binary format H* $b]