高精度运算库gmp
2024-10-02 02:16:52
网址:www.gmplib.org
我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
执行操作如下:
1. tar -jvxf gmp-6.1.2.tar.bz2
2. ./configure --enable-cxx
注意:在configure的时候一定要加上--enable-cxx,否则不能使用C++库gmpxx.h
3. make
4. make check
5. sudo make intall
用c语言编一个例子:
#include<gmpxx.h>
using namespace std;
int main()
{
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, );
mpz_pow_ui(c, a, );
gmp_printf("c = %Zd\n", c); //计算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "", );//10进制
mpz_init_set_str(c, "", );
mpz_mul(d, b, c);
gmp_printf("d = %Zd\n", d);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
return ;
}
用c++要简单很多:
#include<gmpxx.h>
using namespace std;
int main()
{
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, );
mpz_pow_ui(c, a, );
gmp_printf("c = %Zd\n", c); //计算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "", );//10进制
mpz_init_set_str(c, "", );
mpz_mul(d, b, c);
gmp_printf("d = %Zd\n", d);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
return ;
}
注意,编译时要链接gmp库:
g++ name.cpp -o name.o -lgmpxx -lgmp
最新文章
- jquery遍历数组与筛选数组的方法
- c# 利用结构体获取json数据
- 又是周六了-MySQL特训
- 必填项(required)
- thread_fork/join并发框架1
- bzoj1758 [Wc2010]重建计划 &; bzoj2599 [IOI2011]Race
- java提高篇-----详解java的四舍五入与保留位
- 【LeetCode】228 - Summary Ranges
- JS后退, JS返回上一页, JS返回下一页
- Crawler &; Ajax:WebBrowser C#
- iOS-网络编程(一)HTTP协议
- UIScreen类
- webpack搭建服务器,随时修改刷新
- 1. 数字根(Digital Root)
- OpenCV角点检测goodFeaturesToTrack()源代码分析
- IDEA破解 Intellij IDEA license server 激活(可用)
- 日常问题181101: ueditor文本编辑器
- PyMysql的LIKE查询%问题
- Microsoft Azure IoTHub Serials 2 - 如何为android应用添加IoTHub支持
- 关于webpack,babel,以及es6和commonJS之间的联系(转)