प्राथमिक डेटा प्रकार: Difference between revisions

From Vigyanwiki
Line 132: Line 132:
[[Category:Short description with empty Wikidata description|Primitive data type]]
[[Category:Short description with empty Wikidata description|Primitive data type]]
[[Category:Sidebars with styles needing conversion|Primitive data type]]
[[Category:Sidebars with styles needing conversion|Primitive data type]]
[[Category:Vigyan Ready]]

Revision as of 14:38, 6 March 2023

कंप्यूटर विज्ञान में, प्राथमिक डेटा प्रकार मूल डेटा प्रकारों का समूह है जिससे अन्य सभी डेटा प्रकारों का निर्माण किया जाता है।[1] विशेष रूप से यह अधिकांश विशेष केंद्रीय प्रसंस्करण इकाई द्वारा उपयोग किए जाने वाले डेटा प्रस्तुतियों के सीमित सेट को संदर्भित करता है, जिसका उपयोग सभी संकलित प्रोग्रामों को करना चाहिए। अधिकांश केंद्रीय प्रसंस्करण इकाई प्राथमिक डेटा प्रकारों के समान सेट का समर्थन करते हैं, चूँकि विशिष्ट प्रतिनिधित्व अलग-अलग होते हैं।[2] अधिक सामान्यतः, प्राथमिक डेटा प्रकार प्रोग्रामिंग भाषा में निर्मित मानक डेटा प्रकारों को संदर्भित कर सकते हैं।[3][4] डेटा प्रकार जो प्राथमिक नहीं हैं उन्हें व्युत्पन्न या समग्र डेटा प्रकार कहा जाता है।[3]

प्राथमिक प्रकार लगभग हमेशा मान प्रकार के होते हैं, किन्तु मिश्रित प्रकार भी मान प्रकार हो सकते हैं।[5]


सामान्य प्राथमिक डेटा प्रकार

जावा (प्रोग्रामिंग भाषा) वर्चुअल मशीन का प्राथमिक डेटा प्रकारों का सेट है:[6]

ये प्राथमिक प्रकार सामान्य रूप से कंप्यूटर हार्डवेयर द्वारा समर्थित होते हैं, संभवतः अलग-अलग पूर्णांक आकार या हार्डवेयर के लिए जो फ़्लोटिंग पॉइंट लुप्त है। ऐसे प्रिमिटिव पर ऑपरेशन सामान्यतः अधिक कुशल होते हैं। प्राथमिक डेटा प्रकार जो केंद्रीय प्रसंस्करण इकाई के मूल हैं, कंप्यूटर की मेमोरी में वस्तुओं के साथ एक-से-एक पत्राचार करते हैं, और इन प्रकारों पर संचालन अधिकांश अधिकांशतः स्थितियों में सबसे तेज़ संभव होता है।[9] उदाहरण के लिए, पूर्णांक जोड़, एकल मशीन निर्देश के रूप में किया जा सकता है, और कुछ एकल निर्देश वाले वर्णों के अनुक्रम को संसाधित करने के लिए विशिष्ट निर्देश प्रदान करते हैं।[10] किन्तु प्राथमिक डेटा प्रकार का चुनाव प्रदर्शन को प्रभावित कर सकता है, उदाहरण के लिए फ्लोट की सरणी पर संचालित करने के लिए SIMD संचालन और डेटा प्रकारों का उपयोग करना तेज़ है।[9]: 113 

मूलभूत सी डेटा प्रकारों का सेट जावा के समान है। इसके कम से कम, चार प्रकार हैं, char, int, float, और double, किन्तु क्वालीफायर short, long, signed, और unsigned अर्थ है कि सी में कई लक्ष्य-निर्भर पूर्णांक और चल बिन्दु प्राथमिक प्रकार होते हैं।[11]


पूर्णांक संख्या

पूर्णांक (कंप्यूटर विज्ञान) डेटा प्रकार कुछ अंतराल (गणित) का प्रतिनिधित्व करता है। पूर्णांक या तो हस्ताक्षरित हो सकते हैं (ऋणात्मक मानों की अनुमति देते हैं) या अहस्ताक्षरित (केवल गैर-ऋणात्मक पूर्णांक)। सामान्य श्रेणियां हैं:

आकार (बाइट्स) आकार (बिट्स) नाम हस्ताक्षरित श्रेणी (दो का पूरक प्रतिनिधित्व) अहस्ताक्षरित श्रेणी
1 बाइट 8 bits C99 में बाइट, ऑक्टेट , char का न्यूनतम आकार (सीमा डॉट एच चार_बिट) −128 to +127 0 to 255
2 बाइट्स 16 bits x86 शब्द, C में short and int का न्यूनतम आकार −32,768 to +32,767 0 to 65,535
4 बाइट्स 32 bits x86 दोहरा शब्द, सी में long समय का न्यूनतम आकार, अधिकांश आधुनिक सी कंपाइलर्स[12] के लिए int का वास्तविक आकार, IA-32-संगत प्रोसेसर के लिए सूचक −2,147,483,648 to +2,147,483,647 0 to 4,294,967,295
8 बाइट्स 64 bits x86 चौगुनी शब्द, C में long long का न्यूनतम आकार, अधिकांश आधुनिक C कंपाइलरों[12] के लिए long का वास्तविक आकार, x86-64-संगत प्रोसेसर के लिए सूचक −9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 0 to 18,446,744,073,709,551,615


चल बिन्दु संख्या

चल-बिंदु संख्या सीमित-परिशुद्धता परिमेय संख्या का प्रतिनिधित्व करती है जिसका एक भिन्नात्मक भाग हो सकता है। ये संख्याएं सामान्यतः बाइनरी अंक प्रणाली में किन्तु कभी-कभी दशमलव में वैज्ञानिक संकेतन के समतुल्य प्रारूप में आंतरिक रूप संग्रहीत किया जाता है। क्योंकि चल बिन्दु संख्याओं की सीमित शुद्धता होती है, केवल वास्तविक संख्या या परिमेय संख्या संख्याओं का उपसमुच्चय बिल्कुल प्रतिनिधित्व योग्य होता है; अन्य संख्याओं को केवल लगभग प्रदर्शित किया जा सकता है। कई भाषाओं में एक ही परिशुद्धता (अधिकांश फ्लोट कहा जाता है) और दोहरा त्रुटिहीन प्रकार (अधिकांश दोहरा कहा जाता है) दोनों होते हैं।

बूलियन

बूलियन डेटाटाइप प्रकार, जिसे सामान्यतः बूल या बूलियन कहा जाता है, सामान्यतः तार्किक प्रकार होता है जिसका मान "सत्य" या मान "गलत" हो सकता है। चूँकि सही और गलत मान सेट को समायोजित करने के लिए केवल बिट आवश्यक है, प्रोग्रामिंग भाषाएं सामान्यतः बूलियन प्रकारों को एक या अधिक बाइट्स के रूप में प्रायुक्त करती हैं।

कई भाषाएँ (जैसे जावा (प्रोग्रामिंग लैंग्वेज), पास्कल (प्रोग्रामिंग भाषा) और एडा (प्रोग्रामिंग लैंग्वेज)) बूलियन्स को विशिष्ट तार्किक प्रकार के रूप में बूलियन्स की अवधारणा का पालन करते हुए प्रायुक्त करते हैं। चूँकि, कुछ भाषाएं बूलियन्स और बूलियन अभिव्यक्तियों को विस्तारित शब्दार्थ देने या भाषा के पिछले संस्करणों के साथ पश्चगामी संगतता प्राप्त करने के लिए कभी-कभी बूलियन्स को सांख्यिक प्रकारों में परिवर्तित कर सकती हैं। उदाहरण के लिए, एएनएसआई सी और उसके पूर्व मानकों का पालन करने वाली एडा (प्रोग्रामिंग भाषा) के प्रारंभिक संस्करणों में समर्पित बूलियन प्रकार नहीं था। इसके अतिरिक्त, शून्य के सांख्यिक मानों की व्याख्या असत्य के रूप में की जाती है, और किसी अन्य मान की व्याख्या सत्य के रूप में की जाती है।[13] नए C99 में विशिष्ट बूलियन प्रकार जोड़ा गया है जिसे stdbool.h के साथ सम्मिलित किया जा सकता है,[14] और C++ bool कों अंतर्निहित प्रकार के रूप में "सत्य" और "असत्य" को आरक्षित शब्दों के रूप में समर्थन करता है।।[15]


एक्सएमएल स्कीमा

एक्सएमएल स्कीमा डेफिनिशन भाषा 19 प्राथमिक डेटा प्रकारों का सेट प्रदान करती है:[16]

  • string: स्ट्रिंग (कंप्यूटर विज्ञान), यूनिकोड कोड बिंदुओं का क्रम
  • boolean: बूलियन डेटाटाइप
  • decimal: दशमलव संकेतन के साथ प्रदर्शित संख्या
  • float और double: दशमलव संख्याएं
  • duration, dateTime, time, date, gYearMonth, gYear, gMonthDay, gDay, और gMonth: कैलेंडर दिनांक और समय
  • hexBinary और base64Binary: बाइनरी डेटा हेक्साडेसिमल या बेस 64 के रूप में एन्कोड किया गया हैं।
  • anyURI: घृणा करना
  • QName: क्यूनाम
  • NOTATION: क्यूनाम स्कीमा में टिप्पणी के रूप में घोषित किया गया। गैर-एक्सएमएल डेटा प्रकारों को एम्बेड करने के लिए टिप्पणी का उपयोग किया जाता है।[17] इस प्रकार का सीधे तौर पर उपयोग नहीं किया जा सकता है - केवल व्युत्पन्न प्रकारों का उपयोग किया जा सकता है जो क्यूनामों के सीमित सेट की गणना करते हैं।

अंतर्निर्मित प्रकार

जावास्क्रिप्ट में, 7 प्राथमिक डेटा प्रकार: स्ट्रिंग, संख्या, बिगिंट, बूलियन, अपरिभाषित, प्रतीक और अशक्त हैं। ये वस्तुएं नहीं हैं और इनकी कोई विधि नहीं है।[18]

मूल दृश्य .NET में, प्राथमिक डेटा प्रकारों में 4 अभिन्न प्रकार, 2 चल बिन्दु प्रकार, 16-बाइट दशमलव प्रकार, बूलियन प्रकार, दिनांक/समय प्रकार, यूनिकोड वर्ण प्रकार और यूनिकोड स्ट्रिंग प्रकार सम्मिलित होते हैं।[19]

सामान्य तौर पर, परिष्कृत प्रोग्रामिंग भाषाओं में बनाए जा सकने वाले डेटा प्रकारों में सम्मिलित हैं:

वर्ण और तार

वर्ण (कंप्यूटिंग) प्रकार एक प्रकार है जो सभी यूनिकोड वर्णों का प्रतिनिधित्व कर सकता है, इसलिए कम से कम 21 बिट चौड़ा होना चाहिए। जूलिया जैसी कुछ भाषाओं में प्राथमिक के रूप में वास्तविक 32-बिट यूनिकोड वर्ण प्रकार सम्मिलित है।[20] अन्य भाषाओं जैसे कि जावास्क्रिप्ट, पायथन (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज), और मूलभूत की कई बोलियों में प्राथमिक वर्ण प्रकार नहीं है, किन्तु स्ट्रिंग (कंप्यूटर विज्ञान) सामान्यतः UTF-8 का उपयोग करते हुए एन्कोडिंग को प्राथमिक डेटा प्रकार के रूप में जोड़ते हैं। एक की लंबाई वाले तार सामान्यतः एकल वर्णों का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।

कुछ भाषाओं में वर्ण या स्ट्रिंग प्रकार होते हैं जो सभी यूनिकोड वर्णों या स्ट्रिंग्स का प्रतिनिधित्व करने के लिए बहुत छोटे होते हैं। इन्हें अधिक उचित रूप से पूर्णांक प्रकारों के रूप में वर्गीकृत किया गया है। उदाहरण के लिए सी में char प्रकार सम्मिलित है, किन्तु इसे स्मृति की सबसे छोटी पता योग्य इकाई के रूप में परिभाषित किया गया है, जिसे कई मानकों, जैसे POSIX को 8 बिट्स की आवश्यकता होती है। इन मानकों का नवीनतम संस्करण char कों संख्यात्मक प्रकार के रूप में संदर्भित करता है। जावा (प्रोग्रामिंग भाषा) में 16-बिट पूर्णांक प्रकार के लिए char का भी प्रयोग किया जाता है, किन्तु फिर से यह यूनिकोड वर्ण प्रकार नहीं है।[21] कुछ कंप्यूटर हार्डवेयर में कुछ निर्देश होते हैं जो बाइट्स के अनुक्रम का उल्लेख करते हुए स्ट्रिंग्स से निपटते हैं। उदाहरण के लिए, x86-64 वस्तुओं के अनुक्रम को स्थानांतरित, सेट, खोज या तुलना कर सकता है, जहां कोई आइटम 1, 2, 4 या 8 बाइट लंबा हो सकता है।[22]


श्रेणियों

श्रेणी (कंप्यूटर विज्ञान) संख्यात्मक डेटा प्रकार में इसका अधिकतम और न्यूनतम मान प्रकार में एम्बेडेड होता है। यह कुछ भाषाओं जैसे एडा (प्रोग्रामिंग भाषा) और पास्कल (प्रोग्रामिंग भाषा) में सम्मिलित है। सीमा के बाहर किसी संख्या को संग्रहीत करने का प्रयास करने से उपयोग की जा रही भाषा के आधार पर कंपाइलर/रनटाइम त्रुटियां, या गलत गणना (कटौती के कारण) हो सकती हैं। अभ्यास में संकलक स्वचालित रूप से सबसे उपयुक्त प्राथमिक पूर्णांक या चल बिन्दु प्रकार चुनता है।

यह भी देखें

संदर्भ

  1. Stone, R. G.; Cooke, D. J. (5 February 1987). Program Construction (in English). Cambridge University Press. p. 18. ISBN 978-0-521-31883-9.
  2. Wikander, Jan; Svensson, Bertil (31 May 1998). Real-Time Systems in Mechatronic Applications (in English). Springer Science & Business Media. p. 101. ISBN 978-0-7923-8159-4.
  3. 3.0 3.1 Khurana, Rohit. Data and File Structure (For GTU), 2nd Edition (in English). Vikas Publishing House. p. 2. ISBN 978-93-259-6005-3.
  4. Chun, Wesley (2001). Core Python Programming (in English). Prentice Hall Professional. p. 77. ISBN 978-0-13-026036-9.
  5. Olsen, Geir; Allison, Damon; Speer, James (1 January 2008). Visual Basic .NET Class Design Handbook: Coding Effective Classes (in English). Apress. p. 80. ISBN 978-1-4302-0780-1.
  6. Lindholm, Tim; Yellin, Frank; Bracha, Gilad; Buckley, Alex (13 February 2015). "Chapter 2. The Structure of the Java Virtual Machine". The Java® Virtual Machine Specification.
  7. Cowell, John (18 February 1997). Essential Java Fast: How to write object oriented software for the Internet (in English). Springer Science & Business Media. p. 27. ISBN 978-3-540-76052-8.
  8. Rakshit, Sandip; Panigrahi, Goutam (December 1995). A Hand Book of Objected Oriented Programming With Java (in English). S. Chand Publishing. p. 11. ISBN 978-81-219-3001-7.
  9. 9.0 9.1 Fog, Agner. "Optimizing software in C++" (PDF). p. 29. Retrieved 28 January 2022. Integer operations are fast in most cases, [...]
  10. "Single Instruction Single Data - an overview | ScienceDirect Topics".
  11. Kernighan, Brian W.; Ritchie, Dennis M. (1988). "2.2 Data Types and Sizes". The C programming language (Second ed.). Englewood Cliffs, N.J. p. 36. ISBN 0131103709.{{cite book}}: CS1 maint: location missing publisher (link)
  12. 12.0 12.1 Fog, Agner (2010-02-16). "Calling conventions for different C++ compilers and operating systems: Chapter 3, Data Representation" (PDF). Retrieved 2010-08-30.
  13. Kernighan, Brian W; Ritchie, Dennis M (1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. p. 41. ISBN 0-13-110163-3.
  14. "Boolean type support library". devdocs.io. Retrieved October 15, 2020.
  15. "Bool data type in C++". GeeksforGeeks. 5 June 2017. Retrieved October 15, 2020.
  16. Biron, Paul V.; Malhotra, Ashok. "XML Schema Part 2: Datatypes". www.w3.org (Second ed.). Retrieved 29 January 2022.
  17. Phillips, Lee Anne (18 January 2002). "Declaring a NOTATION | Understanding XML Document Type Definitions". www.informit.com. Retrieved 29 January 2022.
  18. "Primitive - MDN Web Docs Glossary: Definitions of Web-related terms". developer.mozilla.org. MDN.
  19. "Types in Visual Basic". Microsoft Docs (in English). 18 September 2021. Retrieved 18 May 2022.
  20. "Strings · The Julia Language". docs.julialang.org. Retrieved 29 January 2022.
  21. Mansoor, Umer (8 May 2016). "The char Type in Java is Broken". CodeAhoy. Retrieved 10 February 2020.
  22. "I/O and string instructions". Retrieved 29 January 2022.


बाहरी संबंध