2

変数に tcl 文字列が設定されています。16進数として扱い、2進数に変換したい。誰でも私がこれを達成するのを手伝ってくれますか?

これが私がやっていることです:

$ /usr/bin/tclsh8.5
% set a a1a2a3a4a5a6
a1a2a3a4a5a6
% set b [ string range $a 0 3 ]
a1a2

ここで、変数 "b" の a1a2 値を 0xa1a2 として扱い、バイナリに変換できるようにします。これを解決するのを手伝ってください。

4

1 に答える 1

5

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]
于 2013-01-30T12:00:16.753 に答える