2011-09-18 4 views
6

मुझे बड़े पूर्णांक का प्रतिनिधित्व करने के लिए एक बिग्नम लाइब्रेरी की आवश्यकता है। डी प्रोग्रामिंग भाषा के साथ मेरे पास कौन से विकल्प हैं? उदाहरण के लिए, जीएमपी बाइंडिंग हैं?क्या बिग्नम पुस्तकालय डी के साथ काम करते हैं?

अद्यतन:

मैं जैसा कि नीचे वर्णित इनबिल्ट BigInt उपयोग करने के लिए कोशिश कर रहा हूँ लेकिन ऐसा लगता है यह जीडीसी के साथ उपलब्ध नहीं है।

import std.bigint; 
import std.stdio; 

void main() 
{ 
    BigInt n = "123"; 
    writefln(n); 
} 

मुझे बताया गया हूँ यह bigint.d नहीं मिल सकता है जब मैं gdc main.d के साथ इस कोड को संकलित करने का प्रयास करें। क्या जीडीसी केवल कुछ लाइब्रेरी को लागू करता है या क्या मैं कुछ गलत कर रहा हूं?

+0

क्या आप वाकई जीडीसी के डी 2 संस्करण का उपयोग करते हैं? – Trass3r

+1

यदि आपने स्वयं को जीडीसी संकलित नहीं किया है, तो आप शायद डी –

+0

के नवीनतम संस्करण का उपयोग नहीं कर रहे हैं जैसा कि मैं इसे समझता हूं, जीडीसी के पास इसके सभी फोब्स हैं, लेकिन मैंने वास्तव में इसे कभी भी इस्तेमाल नहीं किया है, इसलिए मैं नहीं पता नहीं इसका वर्तमान होमपेज यहां है: https://bitbucket.org/goshawk/gdc/wiki/Home –

उत्तर

5

यदि आप जो खोज रहे हैं वह एक बड़ा पूर्णांक प्रकार है, तो मानक पुस्तकालय में BigInt है। दूसरी तरफ, यदि आप विशेष रूप से जीएमपी का उपयोग करना चाहते हैं, तो आपको केवल extern(C) की आवश्यकता है जीएमपी में उपयुक्त प्रकारों और कार्यों के लिए घोषणाएं, और आप उन्हें सीधे डी से कॉल कर सकते हैं। this page देखें डी

+1

बीटीडब्ल्यू, एक एमपीएफआर बाइंडिंग को dil में शामिल किया गया है: https://github.com/azizk/dil/blob/master/src /util/mpfr.d – Trass3r

4

में डी कोड का उपयोग करने के तरीके के बारे में अधिक जानकारी के लिए पॉल एंडरसन मानक पुस्तकालय के लिए बिगफ्लैट अमूर्त पर काम कर रहा है।