2011-11-01 12 views
5

Ho bisogno di fare calcoli energetici enormi (penso 2^1.000.000) in C#, e un ulong non è affatto sufficiente. Probabilmente non c'è nulla di più grande implementato in .NET, ma ci sono alcune cose di terze parti, o anche qualcosa che posso fare che funzionerà?Tipo di memoria C# più grande di ulong

risposta

20

Se si utilizza .NET Framework 4.0, è possibile utilizzare BigInteger. Basta aggiungere un riferimento all'assembly System.Numerics.

Ci sono molte altre implementazioni anche se .NET Framework 4.0 non è disponibile, come this one su CodeProject.

+0

Wow, non lo sapevo mai. Grazie! Funziona come un fascino! – Entity

4

Da .Net 4.0 è possibile utilizzare System.Numerics.BigInteger.

1

Il termine per ciò che si cerca di cercare è "aritmetica di precisione arbitraria" e, nel caso di 2^1.000.000, un numero intero di precisione arbitraria.

System.Numeric.BigIntegers in .NET 4 funzionerà correttamente.

Se è necessario utilizzare una versione precedente di .NET o qualsiasi altra lingua o se sono necessarie più funzionalità o prestazioni, lo GMP library è il solito punto di arresto per la matematica non comune. GMP è scritto in C ed è disponibile tramite wrapper per qualsiasi altra lingua.