जीसीसी समर्थन करता है:क्या जीसीसी लंबे समय तक int का समर्थन करता है?
long long int
जो एक 64-बिट पूर्णांक हो सकता है?
इसके अलावा, long long int
मानक का हिस्सा है?
जीसीसी समर्थन करता है:क्या जीसीसी लंबे समय तक int का समर्थन करता है?
long long int
जो एक 64-बिट पूर्णांक हो सकता है?
इसके अलावा, long long int
मानक का हिस्सा है?
हाँ जीसीसी long long int
का समर्थन करता है, जो सी 99 मानक का हिस्सा है।
मानक बिट्स में इसका आकार जनादेश नहीं है, लेकिन <limits.h>
में LLONG_MIN
और LLONG_MAX
के मूल्यों की आवश्यकता मतलब यह कम से कम है 64-बिट (सटीक 64-बिट विस्तृत पूर्णांक प्रकार के होते हैं <stdint.h>
से int64_t
/uint64_t
)।
LLONG_MIN
होना चाहिए पर सबसे -9223372036854775807
LLONG_MAX
कम से कम 9223372036854775807
long long int
सी 99 मानक का एक हिस्सा है, और मुझे पता है कि जीसीसी इसका समर्थन करता है। And now I can prove it.
मुझे विश्वास है कि आम तौर पर एक unsigned long long
एक 64-बिट पूर्णांक के पारंपरिक प्रतिनिधित्व है होना चाहिए। मुझे लगता है कि long long int
भी काम करेगा, लेकिन मैंने कभी भी इस तरह से घोषित किसी भी 64-बिट वार्स को व्यक्तिगत रूप से कभी नहीं देखा है।
'लंबी लंबी int' सिर्फ एक हस्ताक्षरित 64-बिट (या अधिक) पूर्णांक है। इसके बारे में विशेष रूप से असामान्य कुछ भी नहीं। – bdonlan
मेरी 32-बिट मशीन पर,
int main()
{
printf("%d\n", sizeof(long long int));
return 0;
}
gcc
प्रिंट 8 (8 बाइट्स * 8 बिट/बाइट = 64 बिट्स) के साथ संकलित।
'size_t' प्रारूप तारों का उपयोग' "% zu" '' ''% d "' ('ssize_t' ''% zd" 'का उपयोग करना चाहिए) का उपयोग करना चाहिए। यह 64-बिट प्लेटफॉर्म पर एक समस्या है, जहां size_t अक्सर 64-बिट प्रकार होता है, जबकि int अभी भी 32-बिट हो सकता है। – bdonlan
आकार (char) == 1 परिभाषा के अनुसार लेकिन यह> = एक बाइट होने की अनुमति है। तो 64 बिट प्रकारों को sizef (टी) == 1 होने की अनुमति है। –
हां, long long
सी 99 का हिस्सा है, साथ ही long long
स्थिरांक (10222333444555LL
) और कुछ समर्थन तत्व हैं। (LLONG_MAX
, llrint(d)
, llround(d)
, कुछ अन्य।) और जीसीसी ने इसे कुछ समय के लिए लागू किया है।
आदेश लंबे पूर्णांक चर मुद्रित करने के लिए में:
long long int lli = 100000000;
printf("%lld\n", lli);
लंबे देशांतर में अच्छी तरह से समर्थन कर रहे हैं, और एक लंबे लंबे समय [खेद] के लिए किया गया है। जैसा कि मैं इसे समझता हूं, यह 64-बिट प्लेटफ़ॉर्म पर 128 बिट होना चाहिए था, लेकिन जीसीसी में संगतता/पोर्टेबिलिटी कारणों के लिए, 64-बिट चौड़ाई पर मानकीकृत किया गया है।
यह भी देखें: (यू) int128_t, और इस discussion on GCC's 128-bit integer support
"यह 64-बिट प्लेटफार्मों पर 128 बिट होना चाहिए": इस पुष्टि को किसी भी तरह से समर्थन देने की देखभाल? –
मैंने कहा, "जैसा कि मैं इसे समझता हूं"। मैं केवल इस विचार का समर्थन कर सकता हूं, क्योंकि विकिपीडिया कहता है, "शब्द का प्रयोग बिट्स के एक छोटे समूह के लिए किया जाता है जिसे एक विशेष आर्किटेक्चर के प्रोसेसर द्वारा एक साथ संभाला जाता है। इस प्रकार का शब्द सीपीयू-विशिष्ट है।" तो तार्किक रूप से, एक लंबा लंबा शब्द एक व्यापक कमान पर लंबा होगा। हालांकि, वही विकिपीडिया पेज से, वास्तव में मानक लगता है कि लंबे समय तक 64-बिट है। http://en.wikipedia.org/wiki/Integer_%28computer_science%29 –
सभी को धन्यवाद, मैंने पहले 64 बिट डेटा के साथ कभी नहीं खेला है और मैं आलसी आज रात डर लग रहा है। – Polaris878
ध्यान दें कि एक C99 वातावरण में, आपको पोर्टेबल 64-बिट पूर्णांक के लिए '' में 'int64_t' का उपयोग करना चाहिए। यदि आप सी 99 वातावरण में नहीं हैं, तो 'लंबी अवधि' आपकी सबसे अच्छी शर्त है, लेकिन वास्तव में यह 64 बिट चौड़े होने की गारंटी नहीं है। –
एसटी: ठीक है, यह * कम से कम * 64-बिट चौड़े होने की गारंटी है, इसलिए उसे चिंता नहीं करनी चाहिए कि वहां कहीं बाहर है <64. अनुरूप अनुरूप कार्यान्वयन में नहीं, वैसे भी। – DigitalRoss