2012-05-14 12 views
10

Estoy buscando una clase BigInt buena y básica en C++, encuentro mucha implementación pero la mayoría de las veces, es una implementación compleja para la biblioteca de cifrado ...Una implementación buena y básica de la clase BigInt en C++

Por básico, me refiero a que BigInt puede manejar BigInt, long long y strings con sobrecarga del operador. Si tuviera tiempo, lo hubiera hecho yo mismo pero no tengo tiempo para crear una clase completa de BigInt.

+3

Creo que GMP tiene envoltorios de clase ¿no es así? –

+0

@SethCarnegie: Sí, pero GMP está en C. (Me gustaría algo en C++ moderno que usa la sobrecarga del operador) – Bebeoix

+0

Una _class wrapper_ necesariamente estaría en C++ ya que C no tiene clases. –

Respuesta

5

Here's one. No lo he usado, pero no parece demasiado complejo, y fue el primer resultado cuando busqué en Google "bigint C++".

+0

La biblioteca se ocupa de muchos otros tipos de BigInteger como BigUnsigned y BigUnsignedInABase, no tan fácil como una sola clase de BigInt. – Bebeoix

+0

Si no desea BigUnsignedInABase, puede usarlo sin costo. Personalmente, no creo que encuentres nada más simple. Tómelo o déjelo. –

+0

Me preguntaba algo mucho más básico/fácil. – Bebeoix

17

La biblioteca más simple que conozco es InfInt. Consiste de un solo archivo de encabezado. Su uso es bastante simple. Aquí hay un código de muestra:

InfInt myint1 = "15432154865413186646848435184100510168404641560358"; 
InfInt myint2 = 156341300544608LL; 

myint1 *= --myint2 - 3; 
std::cout << myint1 << std::endl; 
+0

Aquí hay un enlace actualizado a [InfInt github] (https://github.com/sercantutar/infint). Aquí hay un enlace de descarga permanente para [InfInt.h] (https://web.archive.org/web/20170509111229/https://raw.githubusercontent.com/sercantutar/infint/master/InfInt.h) – Hydranix

Cuestiones relacionadas