मुझे 40-बिट बाइनरी संख्या का प्रतिनिधित्व करने की आवश्यकता है। इसे संभालने के लिए कौन सी सी डेटाटाइप का उपयोग किया जाना चाहिए?कौन सा सी डेटाटाइप 40-बिट बाइनरी संख्या का प्रतिनिधित्व कर सकता है?
उत्तर
आप एक C99 या C11 अनुरूप संकलक उपयोग कर रहे हैं देखते हैं, तो अधिकतम संगतता के लिए int_least64_t
का उपयोग करें। या, यदि आप एक हस्ताक्षरित प्रकार चाहते हैं, uint_least64_t
। इन दोनों को <stdint.h>
<stdint.h>
आमतौर पर int64_t
परिभाषित करता है, लेकिन चूंकि मानक द्वारा इसकी आवश्यकता नहीं है, इसलिए इसे प्रत्येक कार्यान्वयन में परिभाषित नहीं किया जा सकता है। हालांकि:
int_least64_t
- कम से कम 64 बिट्स, औरint_fast64_t
- कम से कम 64 बिट्स
दोनों C99 और सी 11 में उपस्थित होने के लिए आवश्यक हैं के इस कार्यान्वयन में सबसे तेजी से आकार (देखें सी 99 मानक में 7.18.1.2-3, और सी 11 मानक में § 7.20.1.2-3)।
हालांकि C99 निर्दिष्ट करता है कि long long
at least 64 bits on a particular machine है (§ 5.2.4.2.1), <stdint.h>
में प्रकार स्पष्ट रूप से पोर्टेबल होने के लिए बनाया गया है।
आप विभिन्न प्लेटफार्मों here पर पूर्णांक आकारों के बारे में अधिक पढ़ सकते हैं। ध्यान दें कि पूर्णांक प्रकारों का आकार long
डेटा प्रकार के साथ एक समस्या है - 64 बिट विंडोज़ पर, यह वर्तमान में 32 बिट्स है, जबकि 64 बिट लिनक्स पर यह 64 बिट्स है। इस कारण से, मेरा मानना है कि आप <stdint.h>
के प्रकारों का उपयोग करके सबसे सुरक्षित हैं। यह ध्यान देने योग्य है कि long long
अधिक पठनीय है। निजी तौर पर, मैं <stdint.h>
के प्रकार पसंद करता हूं, क्योंकि वे आपको यह कहने की अनुमति देते हैं कि जब आप उनका उपयोग करते हैं तो आप क्या कहेंगे - जो मुझे अधिक पठनीय लगता है। बेशक, पठनीयता अक्सर स्वाद की बात है - और यदि आप एक मौजूदा codebase के साथ काम कर रहे हैं, मैं सिर्फ का पालन करना होगा कि वे करते हैं जो कुछ भी :)
अपने संकलक केवल C89 का समर्थन करता है, तो R..'s solution की अनुमति देगा आप पूर्णांक परिशुद्धता के 53 बिट तक।
+1। –
मैं असहमत हूं। वास्तव में सैद्धांतिक रूप से * अधिक * पोर्टेबल है, क्योंकि एक अनुरूप सी 99 या सी 11 कार्यान्वयन उस प्रकार को प्रदान करना चाहिए जबकि 'int64_t' आवश्यक रूप से मौजूद नहीं है। 'int64_t' का उपयोग केवल तभी किया जाना चाहिए जब आपको वास्तव में 64 बिट दो पूरक प्रकार की आवश्यकता नहीं है, इस तरह के मामलों में, जहां आपको" कम से कम 40 बिट्स "की आवश्यकता होती है, तो 'लंबा लंबा' बेहतर होता है, क्योंकि यह अनावश्यक नहीं जोड़ता है प्रतिबंध। – caf
@caf: क्या सी 99 भी 'int64_t' और परिवार निर्दिष्ट नहीं करता है? (और जहां तक मुझे पता है, वे अभी भी सी 11 में मौजूद हैं)। यदि आप बिल्कुल 64 बिट चौड़ाई निर्दिष्ट नहीं करना चाहते हैं, तो आप 'int_least64_t' या' int_fast64_t' का उपयोग कर सकते हैं। –
long long
कम से कम 64 बिट्स के साथ एक पूर्णांक प्रकार है। यह सभी प्लेटफार्मों पर 40 बिट मूल्यों पर हस्ताक्षर करेगा। आप 64 बिट्स या उससे अधिक के हस्ताक्षरित मानों के लिए unsigned long long
का भी उपयोग कर सकते हैं।
आप long long
का उपयोग कर सकते हैं, जिसमें 64 बिट्स या इससे अधिक हो सकते हैं। अधिक जानकारी के लिए
http://en.cppreference.com/w/cpp/language/types
http://en.wikipedia.org/wiki/Integer_(computer_science)#Common_long_integer_sizes
भी इस्तेमाल किया जा सकता है यह * कम से कम * 64-बिट लंबा है। –
धन्यवाद। फिक्स्ड। इस 'लंबे समय तक' का उपयोग करने के लिए –
मौजूदा उत्तर अच्छे हैं, लेकिन यदि आप C89 समर्थन भी चाहते हैं, तो double
सभी आईईईई 754 अनुरूप कार्यान्वयन पर बिल्कुल 40-बिट पूर्णांक स्टोर करने में सक्षम होंगे।
- 1. बाइनरी संख्या का प्रतिनिधित्व
- 2. कौन सा लेआउट यह कर सकता है?
- 3. सी # बाइनरी स्थिरांक प्रतिनिधित्व
- 4. सी # और ओरेकल संख्या डेटाटाइप
- 5. सॉफ्टवेयर संस्करण संख्या का कौन सा नियम पालन करता है?
- 6. कंपाइलर और नकारात्मक संख्या प्रतिनिधित्व
- 7. कौन सा जावा ग्रहण का उपयोग कर रहा है?
- 8. सी # भाषा का कौन सा हिस्सा है .एच()?
- 9. सी ++ में सबसे बड़ी डेटाटाइप?
- 10. कौन सा शून्य का प्रतिनिधित्व करता है? अपरिफ या खाली स्ट्रिंग
- 11. कौन सा बेहतर है?
- 12. इनमें से कौन सा उदाहरण डीडीडी के सही उपयोग का प्रतिनिधित्व करता है?
- 13. टाइटेनियम का जावास्क्रिप्ट का कौन सा संस्करण उपयोग करता है?
- 14. कौन सा विकी पार्सर?
- 15. कौन सा MinGW फ़ाइल एक सी ++ संकलक
- 16. कौन सा MySQL क्वेरी प्रभावी है रिकॉर्ड
- 17. सी # दशमलव डेटाटाइप प्रदर्शन
- 18. कौन सा ऑपरेटर हटाता है?
- 19. कौन सी फाइल System.Configuration.ConfigurationManager.AppSettings का उपयोग कर रही है?
- 20. मेरे पास रिशेर्पर का कौन सा संस्करण है?
- 21. कौन सा माउस बटन मध्य है?
- 22. कौन सा स्पष्ट तरीका है?
- 23. जी ++ 4.4.1 डिफ़ॉल्ट आवंटक कौन सा है?
- 24. मानक ज़िप में कौन सा एल्गोरिदम उपयोग कर रहा है?
- 25. कौन सा कुशल है, itoa या sprintf?
- 26. @ सिंक्रनाइज़ का उपयोग करने का सही तरीका कौन सा है?
- 27. बेहतर डेटाबेस डिज़ाइन कौन सा है?
- 28. सी # (और नेट) का कौन सा संस्करण शुरू करना चाहिए?
- 29. चेक एप्लिकेशन का कौन सा संस्करण उपयोग हो रहा है
- 30. सी # - बहुत छोटी संख्या के साथ समस्या - डबल डेटाटाइप
+1 अनदेखा डाउनवॉट्स को ऑफ़सेट करने के लिए +1। –
ऐसा लगता है कि 2 डाउनवॉटर आपको +3 (+1 टिप्पणी पर 5 + 1 से निर्णय लेते हैं) :-) –
गैर पोर्टेबल, लेकिन कई टीआई डीएसपी पर [लंबा 40-बिट प्रकार है] (http: // stackoverflow .com/a/28352310/995714) इस उद्देश्य के लिए इतने लंबे समय तक उपयोग किया जा सकता है। अधिकांश पीओएसईक्स सिस्टमों में लंबे समय तक 64 बिट्स हैं और –