Ich schreibe eine App, die Arithmetik mit riesigen Zahlen mit sehr vielen Ziffern beinhaltet. Ich habe zuvor eine Klasse geschrieben, die die Handhabung großer Zahlen vereinfacht, indem man sie als Strings definiert und dann langsame arithmetische String-Funktionen verwendet. Ist das der beste Weg? Wenn nicht, wie soll ich dieses Problem angehen? Hat C # etwas für solche Situationen eingebaut?
.NET 4 wird dies über den BigInteger-Typ eingebaut haben. Dies wird als ziemlich gut abgestimmt angesehen und sollte sehr gut funktionieren.
Für 3.5 und früher können Sie eine Implementierung von BigInteger aus den Dynamic Language Runtime Quellen beziehen. (Siehe zB Ссылка und drill down in Src / Runtime / Microsoft.Dynamic / Math.) Ich weiß nicht, ob dies genau so optimiert wurde wie der .NET 4 BigInteger-Typ, aber es sollte dennoch effizienter sein als Ihre String-Version, da es intern die großen Zahlen mit ganzzahligen Typen darstellt und arithmetisch unter Integer-Operationen abarbeitet .
Wenn Sie dies unter .NET 4 tun können, System. Numeric.BigInteger kann helfen. Wenn Sie eine ältere Version von .NET verwenden, wird Ihnen IntX helfen.
Siehe auch diese SO-Frage zu großen ganzen Zahlen in C #.
Die GNU MP bignum Bibliothek ist eine der schnellsten. Es gibt einen .NET-Wrapper dafür Ссылка
Hier ist eine weitere bignum-Bibliothek für .NET mit Quelle.
> In der Dotnet-Version über 4.0,
System.Numerics.BigInteger
wird Ihnen bei diesem Problem helfen.
Wenn Sie einen Assemblierungsreferenzfehler mit der obigen Syntax erhalten, fügen Sie die Referenz mit
hinzuСсылка .
Hoffe, das wird dir helfen ..!
Tags und Links string biginteger .net c#