Tcllib1.7で桁数制限の無いbignumが使えるようになりました。元々はここで公開されていた拡張を取り込んだみたです。

使ってみる

package require math::bignum
set a [math::bignum::fromstr 18446744073709551615]
set b [math::bignum::fromstr 18446744073709551615]
set c [math::bignum::mul $a $b]
puts [math::bignum::tostr $c]

この例はunsigned long型の最大値を掛けています。bignumパッケージでは、最初に文字列からbignumのデータ型に変換する必要があります。

文字列とbignumの相互変換

計算をする前に文字列をbignum型にします。これらの変換時に基数を指定して任意の基数で(基数から)変換することができます。

#16進数からbignumへ
set a [math::bignum::fromstr fff 16]
#bignumから2進数へ
math::bignum::tostr $a 2

色々な演算


CategoryTclTk


|New|Edit|Freeze|Diff|Backup|Attach|Copy|Rename|
Last-modified: 2004-10-08 (Fri) 00:00:00 (5099d)
HTML convert time: 0.024 sec.