क्या जावा या सी ++ में 128 बिट पूर्णांक होना संभव है?मैं जावा या सी ++ में 128 बिट पूर्णांक का प्रतिनिधित्व कैसे कर सकता हूं?
उत्तर
जावा में, आप BigInteger कक्षा का उपयोग मनमाने ढंग से बड़े पूर्णांक को स्टोर करने के लिए कर सकते हैं। सी ++ में आप समान कार्यक्षमता प्राप्त करने के लिए GMP जैसी लाइब्रेरी का उपयोग कर सकते हैं।
128 बिट संख्याओं का प्रतिनिधित्व करने के लिए अपनी खुद की कक्षा और संचालन लिखें या उपलब्ध कुछ लाइब्रेरी का उपयोग करें।
मैं देख सकता हूं कि क्यों अपना खुद का लिखें या अपना खुद का लिखें नहीं "उपयोगी से कम देखा गया था। यहां 'पीयर प्रेशर बैज' के लिए आपका मौका है :) –
BigInteger
कक्षा पूर्णांक मानों के लिए Long.MAX_VALUE
के लिए डिज़ाइन की गई है।
आप कर सकते हैं। हालांकि, कम से कम C++ के लिए आपको ऐसा करने के लिए लाइब्रेरी का उपयोग करने की आवश्यकता होगी।
मुझे PolarSSL लाइब्रेरी या GNU MP Bignum लाइब्रेरी पसंद है।
बेशक आप उनका प्रतिनिधित्व कर सकते हैं।
कम से कम आप 16 तत्वों के साथ बाइट-सरणी का उपयोग कर सकते हैं।
हालांकि, सवाल यह है कि अगर आप सिर्फ चाहते हैं मूल्य का प्रतिनिधित्व या वास्तव में इसके साथ कुछ गणना है।
जावा में आप BigInteger
का उपयोग कर सकते हैं (प्रभावी ढंग से) मनमाने ढंग से आकार वाले पूर्णांक मान और गणना भी करते हैं।
java.math.BigInteger
पूर्णांक है कि बड़े से 64 बिट्स (एक लंबे का आकार) के साथ काम करने के लिए, java.math.BigInteger का उपयोग करें। यह वर्ग असंबद्ध पूर्णांक का प्रतिनिधित्व करता है और उनके साथ अंकगणित करने के लिए कई विधियां प्रदान करता है।
http://leepoint.net/notes-java/data/numbers/10biginteger.html
आप की जरूरत है दशमलव मान BigDecimal
, आप java.math पैकेज में BigInteger वर्ग का उपयोग कर सकते का उपयोग करें। यह कक्षा मॉड्यूलर अंकगणित, जीसीडी गणना, प्रारंभिक परीक्षण, प्राइम पीढ़ी, संचालन जैसे बिट मैनिप्ल्यूशन के लिए संचालन प्रदान करती है।
इस कक्षा को जेडीके 1.1 में जोड़ा गया है।
लेकिन मुझे नहीं पता कि सी ++ लाइब्रेरी के साथ ऐसी उपलब्धता उपलब्ध है। तीसरे पक्ष से एक एक्स्टेंसिबल एपीआई हो सकती है।
आपको अपनी आवश्यकताओं के बारे में अधिक विशिष्ट होना चाहिए। बस प्रतिनिधित्व करना स्पष्ट रूप से संभव होना चाहिए: लंबा ए, बी 64-बिट वाले की एक जोड़ी के रूप में एक 128-बिट संख्या का प्रतिनिधित्व करता है। – unwind
@unwind: कुछ कंप्यूटर्स पर लंबे समय तक 32 बिट्स हो सकते हैं। '__int64' या 'लंबा लंबा' न्यूनतम 64 बिट्स पर होगा, लेकिन गैर-मानक एक्सटेंशन हैं। – Brian
[सी ++ में बड़े पूर्णांक] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1815803/big-integers-in-c) – MSalters