2012-05-14 4 views
10

मैं सी ++ में एक अच्छा और बुनियादी BigInt वर्ग के लिए देख रहा हूँ, मैं कार्यान्वयन का एक बहुत कुछ मिल लेकिन समय के सबसे अधिक है, यह क्रिप्टो पुस्तकालय के लिए जटिल कार्यान्वयन है में BigInt वर्ग का एक अच्छा और बुनियादी कार्यान्वयन ...सी ++

मूल रूप से, मेरा मतलब है कि BigInt BigInt, लंबे समय तक और ऑपरेटर ओवरलोडिंग के साथ तारों से निपट सकता है। यदि मेरे पास समय था, तो मैंने खुद किया था लेकिन मेरे पास पूरी बिगेंट कक्षा बनाने का समय नहीं है।

+3

मुझे लगता है कि जीएमपी में कक्षा रैपर हैं? –

+0

@ सेठ कार्नेगी: हाँ, लेकिन जीएमपी सी में है (मुझे आधुनिक सी ++ में कुछ चाहिए जो ऑपरेटर ओवरलोडिंग का उपयोग करता है) – Bebeoix

+0

ए _ क्लास रैपर_ आवश्यक रूप से सी ++ में होगा क्योंकि सी में कक्षाएं नहीं हैं। –

उत्तर

5

Here's one। मैंने इसका उपयोग नहीं किया है, लेकिन यह बहुत जटिल नहीं दिखता है, और जब मैंने "बिगिन सी ++" गुगल किया तो यह पहला परिणाम था।

+0

बिगइंटर और BigUnsignedInabase जैसे BigInteger के अलावा लाइब्रेरी का सौदा, केवल एक बिगइन्ट क्लास से इतना आसान नहीं है। – Bebeoix

+0

यदि आप BigUnsignedInabase नहीं चाहते हैं, तो आप इसका उपयोग न करने के लिए स्वतंत्र हैं। निजी तौर पर, मुझे नहीं लगता कि आपको कुछ भी आसान मिलेगा। इसे ग्रहण करें या छोड़ दें। –

+0

मैं कुछ और अधिक बुनियादी/आसान सोच रहा था। – Bebeoix

3

http://sourceforge.net/projects/cpp-bigint/

सी ++ वर्ग BigInt है कि उपयोगकर्ता के लिए सक्षम बनाता मनमाना परिशुद्धता पूर्णांकों के साथ काम करने के लिए।

+1

इस कम से कम कुछ परीक्षण – Slava

17

मुझे पता है कि सबसे सरल लाइब्रेरी InfInt है। इसमें केवल एक हेडर फ़ाइल होती है। इसका उपयोग काफी सरल है। यहां एक नमूना कोड है:

InfInt myint1 = "15432154865413186646848435184100510168404641560358"; 
InfInt myint2 = 156341300544608LL; 

myint1 *= --myint2 - 3; 
std::cout << myint1 << std::endl; 
+0

यहां हैं [इन्फिनेंट github] (https://github.com/sercantutar/infint) के लिए एक अद्यतन लिंक है। यहां [InfInt.h] के लिए एक स्थायी डाउनलोड लिंक है (https://web.archive.org/web/20170509111229/https://raw.githubusercontent.com/sercantutar/infint/master/InfInt.h) – Hydranix