热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获得错误C2177:MPIR的常量太大-GettingerrorC2177:constanttoobigwithMPIR

RunningonWidows7withMSVS2010使用MSVS2010的寡妇7Iamfollowingthistutorialtounderstandhow

Running on Widows 7 with MSVS 2010

使用MSVS 2010的寡妇7

I am following this tutorial to understand how to use MPIR library for adding two big integers

我将通过本教程了解如何使用MPIR库来添加两个大整数

I understand this library should help me in adding very big numbers as shown in the program below:

我明白这个图书馆应该帮助我增加非常大的数字,如下图所示:

#include 
#include 
#include 
#include 

using namespace std;

void main(int argc, char *argv[])
{

   mpz_class answer_a = 111111111111111111111111111111111111111111111111;
   mpz_class answer_b = 111111111111111111111111111111111111111111111111;


   mpz_class answer_c; 

   answer_c= answer_b + answer_a ;   

   cout <

But still I get error C2177: constant too big. Did I misunderstand MPIR ?

但我还是会得到错误C2177:常数太大。我是否误解了MPIR ?

1 个解决方案

#1


4  

Such constant is (very likely) too big for standard integer types. You should use char * constructor instead:

对于标准整数类型来说,这样的常量(很可能)太大了。你应该使用char *构造函数代替:

void mpz_class::mpz_class (const char *s)

For example:

例如:

mpz_class answer_a("111111111111111111111111111111111111111111111111");

to make this work you need to include suitable MPIR C++ interface header (notice that is from C++ interface of GNU MP library):

要完成这项工作,您需要包含合适的MPIR c++接口头(请注意 来自GNU MP library的c++接口):

#include

# include

See 12.2 C++ Interface Integers chapter in MPIR documentation for more details.

有关更多细节,请参阅MPIR文档中的12.2 c++接口整数章节。


推荐阅读
author-avatar
fo切為祢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有