2013-03-04 10 views
6

तो question I asked earlier पर आधारित, मैंने डाउनलोड और सेटअप को बढ़ावा दिया। मैं इस कोड है:सी ++ बूस्ट बड़ी संख्या संग्रहण

#include <stdlib.h> 
#include <boost\multiprecision\gmp.hpp> 
using namespace std; 
using namespace boost::multiprecision; 

void main() { 
    mpz_int N(567014094304930933548155069494723691156768423655208899778686163624192868328194365094673392756508907687565332345345678900976543567890976543565789054335678097654680986564323567890876532456890775646780976543556789054367890765435689876545898876587907876535976565578907654538790878656543687656543467898786565457897675645657689756456578656456768654657898865567689656890795587907654678798765787897865654657897654678965465786867278762795432151914451557727529104757415030674806148138138281214236089749601911974949125689884222023119844272122501649909415937); 

} 

लेकिन जब मैं संकलन यह कहता है

IntelliSense: integer constant is too large 

तो mpz_int है कि मैं क्या उपयोग करने के लिए, तो क्या मैं बढ़ावा से बड़े ints के लिए उपयोग करना चाहिए माना जाता रहा हूँ नहीं है?

+1

gmpxx साथ, आप बस लिख सकता है '567014094304930933548155069494723691156768423655208899778686163624192868328194365094673392756508907687565332345345678900976543567890976543565789054335678097654680986564323567890876532456890775646780976543556789054367890765435689876545898876587907876535976565578907654538790878656543687656543467898786565457897675645657689756456578656456768654657898865567689656890795587907654678798765787897865654657897654678965465786867278762795432151914451557727529104757415030674806148138138281214236089749601911974949125689884222023119844272122501649909415937_mpz' –

उत्तर

2

आप एक पूर्णांक शाब्दिक से निर्माण करने के लिए कोशिश कर रहे हैं: जो वास्तव में उस प्रकार "int" और पकड़ "पूर्णांक" आकार मूल्यों के ही लायक का एक शाब्दिक है। आप या तो कर सकते हैं:

1) अपने बड़े पूर्णांक को उद्धरण में स्थिर रखें, ताकि मान स्ट्रिंग से बनाया गया हो, या 2) केवल cpp_int के साथ, विस्तारित सटीक अक्षर से निर्माण के लिए उपयोगकर्ता द्वारा परिभाषित शाब्दिक समर्थन का उपयोग करें , http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/boost_multiprecision/tut/lits.html देखें ध्यान दें कि इसके लिए एक C++ 11 कंपाइलर - वीसी ++ की आवश्यकता है जिसका उपयोग आप कर रहे हैं, इसका समर्थन करने के लिए अभी तक आवश्यक भाषा सुविधाएं नहीं हैं। ध्यान दें कि यह वास्तविक constexpr प्रारंभिक है, छिपी हुई रचना-से-स्ट्रिंग-ऑन-रनटाइम नहीं जो gmpxx उपयोग करता है (आवश्यक रूप से स्मृति आवंटन आवश्यक है)।

संबंधित मुद्दे