2011-12-24 15 views
5

मैं थोड़ा उलझन में हूं कि सीसी में लंबे डेटा प्रकार का उपयोग कैसे करें?

यदि मैं जावा में लंबे समय तक अधिकतम मूल्य मांगता हूं तो मुझे क्विंटिलियंस में एक संख्या मिलती है। अगर मैं इसे सी में हस्ताक्षर करता हूं, हस्ताक्षरित या हस्ताक्षरित हूं, तो यह अरबों में है।

जावा सी पर बनाया गया है ... तो अंतर कहां से आ रहा है?

मैंने लंबे समय तक मूल्यों, हस्ताक्षरित/हस्ताक्षरित लंबे मूल्यों और लंबे int मूल्यों के साथ साहित्यिक का प्रतिनिधित्व करने का भी प्रयास किया है। उनमें से कोई भी मध्य अरबों के पीछे संख्याओं को संभालने के लिए प्रतीत नहीं होता है। क्यूं कर? क्या मैं गलती कर रहा हूँ?

+1

http://en.wikipedia.org/wiki/Integer_(computer_science) –

उत्तर

10

सी मानक long को कम से कम int के रूप में परिभाषित करता है। वास्तविक आकार कार्यान्वयन निर्भर है। जावा के लिए यह मामला नहीं है, जिसमें long 64 बिट लंबा होने की आवश्यकता है।

सी 99 मानक int64_t जैसेमें परिभाषित निश्चित आकार पूर्णांक प्रकारों को परिभाषित करता है जिसे आप सभी प्लेटफ़ॉर्म पर निश्चित आकार पूर्णांक की आवश्यकता होने पर उपयोग कर सकते हैं।

+0

बस एक टिप्पणी जोड़ने के लिए: यह आमतौर पर आपके ऑपरेटिंग सिस्टम की बिट्स पर निर्भर करता है, लेकिन निश्चित रूप से यह मामला नहीं होना चाहिए। – Dimme

+0

क्या मैं मानक सी लाइब्रेरी में 64 बिट लंबा उपयोग कर सकता हूं? – bgroenks

+1

@ ghostsoldier23 आप पुस्तकालयों के लिए 64 लंबे समय तक उपयोग कर सकते हैं जो 64-बिट मान लेते हैं, आमतौर पर आपके प्रोग्राम को 64-बिट के रूप में संकलित करने की आवश्यकता होती है। जब 'size_t' 64-बिट है। –

2

सी में long long प्रकार भी है। वह कम से कम 64 बिट होने की गारंटी है।

+0

सी 99 'लंबे समय तक int' को परिभाषित करता है, कम से कम _ बिट बिट हस्ताक्षरित पूर्णांक धारण करने में सक्षम हो और 'लंबे int' के आकार से अधिक हो। यह आवश्यक नहीं 64 बिट है। –

+0

@ मेहरदाद अफफ़ारी, ठीक है, मैं काफी सटीक नहीं था, धन्यवाद, बदल गया। –

+0

@ मेहरदाद: आपने कहा, वास्तव में, 'लंबे लंबे int' का आकार 'लंबे int' के आकार से सख्ती से अधिक होना चाहिए; क्या वो सही है? निश्चित रूप से, एक अनुरूप कार्यान्वयन 'लंबे int int' के समान आकार को 'लंबे समय तक int' प्रदान कर सकता है; 'लंबी लंबी int 'का आकार' long int' के आकार से कम नहीं हो सकता है। –

0

आप बड़ा नंबर आप जीएनयू सांसद bignum लाइब्रेरी का उपयोग कर सकते के साथ काम करना चाहते हैं: http://gmplib.org/ संख्या और सटीक केवल मशीन है कि उस पर चलाता है की उपलब्ध स्मृति द्वारा सीमित है।

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