.NET Framework 2.0 で大きな整数を扱える型に、Int64 や Decimal 型があります。ふと、これより大きな桁を扱える型は作れないものなのかと思いました。そう思っている最中 MSDN Magazine で興味深い記事を見つけました。それは「大きな桁数の整数のサポート」と言う記事です。読んでみると次期バージョンの .NET Framework で大きい数を表せる整数が実装されたと記載されているではありませんか。次期バージョンの正式リリースが待ち遠しいです。と言っておきながら、実は待っていなくても BigInteger を使う事が出来るんです。それが次に紹介する方法です。
方法1
次期バージョンから実装されるのに使えるとは、どういうことかというと J# に既に存在しているのです! java.math.BigInteger クラス。vjslib.dll を参照設定すればすぐに使えます。でもドキュメントを見つけられません。それに J# って .NET の FCL じゃないんですか。別物なんですか。と J# のことを何も知らない私ですが、BigInteger を使える事には変わりありません。
方法2
なんと BigInteger を自作されている方がいました。それが C# BigInteger Class です。ドキュメントは全て英語なので理解に苦しみますが、これを見れば桁の限界を突破するための答えが見えてきそうです。
紹介した二つの BigInteger は、次期バージョンで実装された BigInteger と実装内容は違うと思います。しかし、桁の限界を突破していることには変わりありません。どのような方法で実現されているのかを研究してみたいと思います。