2011-11-01 10 views
5

Necesito hacer cálculos de gran potencia (piense 2^1,000,000) en C#, y un ulong no es suficiente. Probablemente no hay nada más grande implementado en .NET, pero ¿hay algo de terceros, o incluso algo que pueda hacer que funcione?C# tipo de memoria más grande que ulong

Respuesta

20

Si está utilizando .NET Framework 4.0, puede usar BigInteger. Simplemente agregue una referencia al ensamblaje System.Numerics.

También hay muchas otras implementaciones si .NET Framework 4.0 no está disponible para usted, como this one en CodeProject.

+0

Guau, nunca supe esto. ¡Gracias! ¡Funciona de maravilla! – Entity

4

Puede usar System.Numerics.BigInteger desde .Net 4.0.

1

El término que parece estar buscando es "aritmética de precisión arbitraria" y, en el caso de 2^1,000,000, un entero de precisión arbitrario.

System.Numeric.BigIntegers en .NET 4 probablemente funcionará bien.

Si necesita utilizar una versión anterior de .NET o cualquier otro idioma, o necesita más características o rendimiento, el GMP library es la parada habitual para las matemáticas poco comunes. GMP está escrito en C y está disponible a través de envoltorios para casi cualquier otro idioma.

Cuestiones relacionadas