मुझे अक्सर एक पुनः प्राप्त मूल्य (आमतौर पर एक स्ट्रिंग के रूप में) को परिवर्तित करना होता है - और उसके बाद इसे एक int में परिवर्तित करना होता है। लेकिन सी # (.Net) में आपको int16, int32 या int64 चुनना होगा - आप कैसे जानते हैं कि कौन सा चयन करना है जब आप नहीं जानते कि आपका पुनर्प्राप्त नंबर कितना बड़ा होगा?int16, int32, int64 में कनवर्ट करना - आप कैसे जानते हैं कि कौन सा चयन करना है?
उत्तर
यहां हर कोई जिसने उल्लेख किया है कि इंटेल 16 को घोषित करता है, उसे कम करना चाहिए।
आपके प्रश्न का उत्तर कीवर्ड "int" (या यदि आपको ऐसा लगता है, "Int32" का उपयोग करना है) का उपयोग करना है।
है कि आप अप करने के लिए 2.4 अरब संख्या की श्रेणी देता है ... इसके अलावा, 32bit प्रोसेसर उन ints बेहतर (और सबसे महत्वपूर्ण कारण) संभाल लेंगे ... भी है कि आप के लिए है कि पूर्णांक के प्रयोग पर योजना बना रहे हैं लगभग किसी भी कारण ... यह संभवतः एक "int" (Int32) होने की आवश्यकता होगी।
नेट फ्रेमवर्क में, 99.9 99% संख्यात्मक फ़ील्ड (जो पूरी संख्या हैं) "इनट्स" (Int32) हैं।
उदाहरण: ऐरे। लम्बाई, प्रक्रिया.आईडी, विंडोज़ विड्थ, बटन। हाइट, आदि, आदि 1 मिलियन बार।
संपादित करें: मुझे एहसास है कि मेरी मजबूती मुझे नीचे गिरने जा रही है ... लेकिन यह सही जवाब है।
आप यह बताते हुए जवाब क्यों कम कर देंगे कि Int16 इंट 32 की तुलना में कम रैम लेता है? यह आम तौर पर करता है और यह एक महत्वपूर्ण कारक हो सकता है यदि आपको स्मृति में पूर्णांक की एक बड़ी श्रृंखला को स्टोर करने की आवश्यकता है। पीएस। मैंने वास्तव में आपकी गड़बड़ी का आनंद लिया और इसके लिए आपको कम नहीं किया। :) –
सबसे परेशान चीज: Stream.Read और Stream.Write स्ट्रीम करते समय 'int' ऑफसेट स्वीकार करते हैं। लम्बाई लंबा है ... duh! चंकिंग भी प्रदान नहीं किया जाता है! – chakrit
क्योंकि जब तक आप 20 वर्षीय कंप्यूटर (16 बिट रैम के साथ) पर काम नहीं कर रहे हैं या मेमोरी ऑप्टिमाइज्ड स्ट्रक्चर में संपीड़ित स्टोरेज का उपयोग कर रहे हैं, –
यदि हम केवल कुछ संख्याओं के बारे में बात कर रहे हैं, तो सबसे बड़ा चुनने से आपके समग्र राम उपयोग में कोई उल्लेखनीय अंतर नहीं आएगा और यह केवल काम करेगा। यदि आप बहुत सारी संख्याओं के बारे में बात कर रहे हैं, तो आपको उन पर TryParse() का उपयोग करना होगा और राम को बचाने के लिए सबसे छोटा int प्रकार पता लगाना होगा।
सभी कंप्यूटर परिमित हैं। आपको लगता है कि आपके उपयोगकर्ताओं की आवश्यकताओं के आधार पर आपको ऊपरी सीमा को परिभाषित करने की आवश्यकता है।
यदि आपके पास वास्तव में कोई ऊपरी सीमा नहीं है और 'असीमित' मानों को अनुमति देना चाहते हैं, तो अपने प्रोजेक्ट में नेट जावा रनटाइम लाइब्रेरी जोड़ने का प्रयास करें, जो आपको java.math.BigInteger क्लास का उपयोग करने की अनुमति देगा - जो गणित करता है लगभग असीमित आकार पूर्णांक।
नोट: नेट जावा पुस्तकालय पूर्ण देवस्टूडियो के साथ आते हैं, लेकिन मुझे नहीं लगता कि वे एक्सप्रेस के साथ आते हैं।
बस इसे जोड़ना चाहता था ... मुझे याद आया कि .NET 1.1 के दिनों में संकलक को अनुकूलित किया गया था ताकि 'int' ऑपरेशन बाइट या लघु संचालन से वास्तव में तेज़ हो।
मेरा मानना है कि यह आज भी है, लेकिन अब मैं कुछ परीक्षण चला रहा हूं।
संपादित करें: मैं एक आश्चर्य खोज मिल गया है: ऐड, घटाना और छोटी (रों) वास्तव में वापसी पूर्णांक के लिए आपरेशन गुणा!
बार-बार कोशिश कर रहा है TryParse() को समझ में नहीं आता है, आपके पास पहले से घोषित एक फ़ील्ड है। जब तक आप उस प्रकार के ऑब्जेक्ट को ऑब्जेक्ट नहीं बनाते तब तक आप अपना दिमाग नहीं बदल सकते। अच्छा विचार नहीं।
फ़ील्ड का प्रतिनिधित्व करने वाले किसी भी डेटा का भौतिक अर्थ है। यह एक उम्र, आकार, एक गिनती आदि है। शारीरिक मात्रा में उनकी सीमा पर यथार्थवादी संयम हैं। उस प्रकार को चुनें जो उस श्रेणी को स्टोर कर सकता है। ओवरफ्लो को ठीक करने का प्रयास न करें, यह एक बग होगा।
कारण की आवाज़! –
वर्तमान सबसे लोकप्रिय उत्तर के विपरीत, छोटे पूर्णांक (जैसे इंटेल 16 और एसबीटी) अक्सर बड़े पूर्णांक (जैसे इंट 32 और इंट 64) की तुलना में स्मृति में कम जगह लेते हैं।आप आसानी से प्रबंधित हेप आकार को मापने के लिए sbyte/short/int/long के बड़े सरणी और perfmon का उपयोग करके इसे सत्यापित कर सकते हैं। यह सच है कि कई सीएलआर स्वाद इन पूर्णांकों को सीपीयू-विशिष्ट अनुकूलन के लिए विस्तृत करेंगे जब उनके पर अंकगणित और ऐसा, लेकिन जब किसी ऑब्जेक्ट के हिस्से के रूप में संग्रहीत किया जाता है, तो वे आवश्यकतानुसार जितनी मेमोरी लेते हैं।
तो, आपको निश्चित रूप से आकार को ध्यान में रखना चाहिए, खासकर यदि आप पूर्णांक की बड़ी सूची (या पूर्णांक वाले फ़ील्ड वाली वस्तुओं की बड़ी सूची के साथ) काम करेंगे। आपको सीएलएस-अनुपालन जैसी चीजों पर भी विचार करना चाहिए (जो सार्वजनिक सदस्यों में किसी भी हस्ताक्षरित पूर्णांक को अस्वीकार करता है)।
एक स्ट्रिंग को एक पूर्णांक में परिवर्तित करने जैसे साधारण मामलों के लिए, मैं सहमत हूं कि एक इंट 32 (सी # इंट) आमतौर पर सबसे अधिक समझ में आता है और संभव है कि अन्य प्रोग्रामर क्या उम्मीद करेंगे।
- 1. एचटीएमएल 5 बनाम मूल ऐप: कौन सा चयन करना है ??
- 2. Int32 बनाम Int64 बनाम इंट सी # में
- 3. STOMP/AMQP से कौन सा चयन करना है?
- 4. कौन सा चयन करना है: एएसपी.नेट एमवीसी या रीस्टफुल डब्ल्यूसीएफ?
- 5. अंतर SAXParserFactory XMLReaderFactory। कौन सा चयन करना है?
- 6. मल्टीथ्रेडिंग बनाम मल्टी-इंस्टेंसिंग - कौन सा चयन करना है?
- 7. ओपनजीएल खंड शेडर्स कैसे जानते हैं कि बनावट में नमूना नमूना करना है?
- 8. Int32.Parse() वीएस कनवर्ट। ToInt32()?
- 9. आप कैसे जानते हैं कि एक अच्छी अनुक्रमणिका क्या है?
- 10. आरंभ करना .. कौन सा अधिक कुशल है?
- 11. आप कैसे जानते हैं कि बिल्ड को ठीक करने वाला कौन है?
- 12. आप कैसे जांचते हैं कि जावा में कौन सा थ्रेड कोड निष्पादित कर रहा है?
- 13. आप कैसे बता सकते हैं कि टमक्स में कौन सा फलक केंद्रित है?
- 14. कार्यात्मक भाषाओं में कौन सा एल्गोरिदम लागू करना कठिन है?
- 15. कौन सा टूल/एप्लिकेशन/जो भी आप चाहते हैं?
- 16. एसक्यूएल का चयन लोगों को आप जानते हो सकता है
- 17. कनवर्ट करें। चेंज टाइप और enums में कनवर्ट करना?
- 18. एमएसआई और ईईई इंस्टॉलर्स के बीच अंतर क्या हैं, और मुझे कौन सा चयन करना चाहिए?
- 19. आप क्या विरोधी पैटर्न का उपयोग करते हैं भले ही आप जानते हैं कि आपको नहीं करना चाहिए?
- 20. संकलन कैसे कॉल करता है कि कौन सा टेम्पलेट फ़ंक्शन कॉल करना है?
- 21. ओएस कैसे जानता है कि इंटरनेट के लिए कौन सा नेटवर्क इंटरफ़ेस उपयोग करना है?
- 22. x86 पर कौन सा पता निष्पादित करना शुरू करता है?
- 23. कि, स्वयं या मैं - जावास्क्रिप्ट में कौन सा पसंद है?
- 24. क्या आप निर्धारित कर सकते हैं कि कौन सा संपर्क w/registerContentObserver बदलता है?
- 25. SQL सर्वर डेटाबेस में सबसे आम आईडी प्रकार कौन सा है, और कौन सा बेहतर है?
- 26. जावा - मेरे जावा एप्लिकेशन में कौन सा लेखांकन मॉड्यूल एम्बेड करना सबसे अच्छा है?
- 27. कैनवास बनाम वेबजीएल बनाम सीएसएस 3 डी -> कौन सा चयन करना है?
- 28. वेबफॉर्म बनाम एएसपीनेट एमवीसी एकल पेज एप्लिकेशन के लिए - कौन सा चयन करना है?
- 29. अवहेलना toString, जैसा कि आप जानते तत्वों
- 30. मेरा .NET Int64 का व्यवहार क्यों होता है जैसे कि वे Int32 थे?
अगर आपको ऋणात्मक संख्या की आवश्यकता नहीं है, तो भूलें, सी # ने बिना हस्ताक्षर किए इन्ट्स (uint32, uint64) भी हैं। – Powerlord