前段时间算法课设涉及密码学用到大数运算,下面给出已编译好的gmp库的安装方法。
1.下载压缩包并解压
解压后的文件夹如下图所示:
2.新建C++控制台应用
3.项目->属性->C/C++ ->附加包含目录
选择解压后所在的文件夹
点击确定,并将SDL检查一栏改为否
4.不要退出此窗口,点击链接器一栏,展开
点击附加库目录,添加.libs路径
点击确定,点击输入
编辑附加依赖项,输入libgmp.dll.a
点击确定 ,再点击右下角的应用,然后点确定退出
5.配置64位编程环境
点击右边的下拉菜单 点击配置管理器,点击右侧活动解决方案平台改成64位
6.复制gmp库文件中.libs目录下的libgmp-10.dll到项目所在文件夹
给出如下测试代码:
#include <iostream>
#include "gmp.h"
using namespace std;
int main()
{
//计算2的1000次方
{
size_t a = 1;
for (int i = 0; i < 1000; i++)
{
a *= 2;
}
cout << "2^1000 = " << a << endl;
}
{
mpz_t a, b, c, d;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(d);
//计算2的1000次方
mpz_init_set_ui(a, 2);
mpz_pow_ui(c, a, 1000);
gmp_printf("c = %Zd\n", c);
}
//大数运算
{
mpz_t b, c, d;
mpz_init(b);
mpz_init(c);
mpz_init(d);
//计算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "12345678900987654321", 10);//10进制
mpz_init_set_str(c, "98765432100123456789", 10);
mpz_mul(d, b, c);
gmp_printf("d = %Zd\n", d);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
}
return 0;
}
运行结果:
给出文件链接:https://download.csdn.net/download/charlee44/12251146?spm=1001.2014.3001.5503