我要转换的Java代码在C++中BigInteger的Java方法,以GMP C++
代码
BigInteger value = new BigInteger(125, RandomNumber);
BigInteger clone = new BigInteger(value.toByteArray());
如何编写使用GMP库中的cpp的代码?
请任何人都帮助我。 谢谢。
我要转换的Java代码在C++中BigInteger的Java方法,以GMP C++
代码
BigInteger value = new BigInteger(125, RandomNumber);
BigInteger clone = new BigInteger(value.toByteArray());
如何编写使用GMP库中的cpp的代码?
请任何人都帮助我。 谢谢。
用C++可以做到这一点
#include <gmpxx.h>
#include <gmp.h>
#include <iostream>
using namespace std;
int main(){
mpz_class value;
mpz_class clone;
gmp_randclass r(gmp_randinit_default);
value = r.get_z_bits(125);
clone = value;
cout << value << endl;
cout << clone << endl;
return 0;
}
并用 克++ file.cpp -lgmpxx -lgmp
编译安装libgmpxx.a 把--enable-CXX来的./configure的构建选项
我正在使用VC++。我正在使用gmp.h和gmp.lib文件。我如何使用gmpxx.h? – user1545975 2012-07-31 12:07:19
请帮助我如何在VC++项目中使用gmpxx.h – user1545975 2012-07-31 12:11:42
您可以试试这个:http://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/ – Galaad 2012-07-31 16:01:52
这里是来自维基百科
这里碳副本的表示使用GMP库的繁殖和打印大量的C代码的例子:
#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
int main(void)
{
mpz_t x;
mpz_t y;
mpz_t result;
mpz_init(x);
mpz_init(y);
mpz_init(result);
mpz_set_str(x, "7612058254738945", 10);
mpz_set_str(y, "9263591128439081", 10);
mpz_mul(result, x, y);
gmp_printf("\n %Zd\n*\n %Zd\n--------------------\n%Zd\n\n", x, y, result);
/* free used memory */
mpz_clear(x);
mpz_clear(y);
mpz_clear(result);
return EXIT_SUCCESS;
}
此代码计算7612058254738945值×9263591128439081.
编译并运行该程序给出了这个结果。 (该-lgmp标志如果汇编关于UNIX类型的系统中使用。)
7612058254738945
*
9263591128439081
--------------------
70514995317761165008628990709545
[你尝试过什么?](http://WhatHaveYouTried.com) – 2012-07-31 10:48:53
的#include mpz_t value; mpz_init2(randomnumber,125); –
user1545975
2012-07-31 10:51:33
我建议查看文档。如果你已经这样做了,你会描述你的代码面临的问题。 – 2012-07-31 10:55:20