0

48 ビットでコード化された MAC アドレスに対して何らかの操作を行う必要がありますがformat、結果が切り捨てられます。

format 0x%x 0x100000000 ;# --> 0x0

これに対して何かをすることは可能ですか、それともコードをより小さな数値を使用するように適応させる必要がありますか?

4

1 に答える 1

3

Tcl 8.4 ではl、 のフィールド指定子にサイズ修飾子を与えるだけですformat。このようにformatして、値を (少なくとも) 64 ビットの数値 (wide()マシンに依存する と同じサイズ) として解釈するように指示します。

format 0x%lx 0x100000000

( 1桁ではなく、小文字のエル文字であることに注意してください。)

Tcl 8.5 以降では、整数演算は任意の精度で行われ、llサイズ修飾子はformat値を切り捨てないように指示します。

format 0x%llx 0x100000000

(繰り返しますが、これらは 2つの1桁ではなく、2つの小文字のエル文字です。)

于 2013-09-17T06:03:38.877 に答える