2014-04-19 7 views
6

सी ++ में, यह मनमाने ढंग से लंबाई पूर्णांकों परिभाषित करना संभव है?सी ++ मनमाना लंबाई पूर्णांकों

तो 33 और 64 बिट के बीच में किसी भी चीज़ के लिए uint64_t का उपयोग करने के बजाय, मैं अपना 34 बिट, 36 बिट, इत्यादि, पूर्णांक परिभाषित कर सकता हूं। जैसे आप उल्लेख किया

+0

+1। दिलचस्प। उत्तर के इंतजार में। –

+0

आप मशीन वास्तुकला परिभाषित पूर्णांकों की रेंज में हैं, तो आप एक के लिए संख्या को सीमित करने के लिए उपयोग कर सकते [ 'std :: bitset <>'] (http://en.cppreference.com/w/cpp/utility/bitset) बिट्स की विशेष संख्या। –

उत्तर

1

संकलक का अपना प्रकार है। लंबा (अधिकांश प्लेटफ़ॉर्म पर 32 बिट) और लंबे समय तक (अधिकांश प्लेटफ़ॉर्म पर 64 बिट)। यदि आपको बड़े पूर्णांक के लिए समर्थन की आवश्यकता है, तो आप विभिन्न पुस्तकालयों का उपयोग कर सकते हैं जो पूर्णांक के आकार को आपकी स्मृति के आकार तक सीमित कर देते हैं।

पुस्तकालय:

+0

यह एक अनुचित डाउनवोट था इसलिए मैंने इसे –

+0

निश्चित रूप से ब्याज से बाहर कर दिया; बहुस्तरीय समर्थन गैर शक्ति के दो पूर्णांक आकार बूस्ट करता है? – slugonamission

+0

@slugonamission - कंप्यूटर बाइनरी हैं। वे कुछ अलग कैसे कर सकते हैं? –

1

www.boost.org आप C++ दुनिया उपयोग https://gmplib.org/

चाल करना चाहिए रह रहे हैं के रूप में

1

गणना यह देना होगा के लिए आपको कोई फायदा नहीं है क्योंकि आज प्रोसेसर को 32-बिट या 64-बिट अंकगणितीय के लिए अनुकूलित किया गया है।

आप आकार की समस्याओं के लिए उन्हें जरूरत है बजाय यह मतलब सकता है n-बिट नंबर की अपनी कंटेनर परिभाषित करने के लिए और यह आसानी से कोडित किया जा सकता है।

इससे भी अधिक सामान्य आधुनिक-n संख्या के लिए एक कंटेनर हो सकता है (अर्थात संख्या के लिए 0 से n-1 के लिए, जरूरी नहीं कि दोनों में से एक सटीक शक्ति के साथ सापेक्ष के लिए)। इसके लिए एक आसान समाधान (लेकिन अंतरिक्ष इष्टतम नहीं) 64-बिट पूर्णांक में फिट होने वाली एन की सबसे बड़ी शक्ति पर आधारित हो सकता है (उदाहरण के लिए आप 0 और 6 के बीच 22 नंबरों को एक और संख्या में 0 और 2 ** 64 के बीच पैक कर सकते हैं -1)।

+0

आपका उपयोगकर्ता नाम आपसे डेटिंग कर रहा है - क्या यह 6502 ए या 6502 बी था? कोई छाया राम? बीबीसी या Acorn इलेक्ट्रॉन? –

+0

@ एडीएचल: ऐप्पल] [:-) – 6502

+0

मुझे नहीं पता था कि ऐप्पल के पास 6502 प्रोसेसर था –

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