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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|An extremely basic/core data type provided by a programming language}}
{{Short description|An extremely basic/core data type provided by a programming language}}
[[कंप्यूटर विज्ञान]] में, आदिम [[डेटा प्रकार]] मूल डेटा प्रकारों का एक समूह है जिससे अन्य सभी डेटा प्रकारों का निर्माण किया जाता है।<ref>{{cite book |last1=Stone |first1=R. G. |url=https://www.google.com/books/edition/Program_Construction/0k_xz8O2SewC?hl=en&gbpv=1&pg=PA18 |title=Program Construction |last2=Cooke |first2=D. J. |date=5 February 1987 |publisher=Cambridge University Press |isbn=978-0-521-31883-9 |page=18 |language=en-US}}</ref> विशेष रूप से यह अधिकांश एक विशेष केंद्रीय प्रसंस्करण इकाई द्वारा उपयोग किए जाने वाले डेटा अभ्यावेदन के सीमित सेट को संदर्भित करता है, जिसका उपयोग सभी संकलित प्रोग्रामों को करना चाहिए। अधिकांश प्रोसेसर आदिम डेटा प्रकारों के समान सेट का समर्थन करते हैं, चूँकि विशिष्ट प्रतिनिधित्व अलग-अलग होते हैं।<ref>{{cite book |last1=Wikander |first1=Jan |last2=Svensson |first2=Bertil |title=Real-Time Systems in Mechatronic Applications |date=31 May 1998 |publisher=Springer Science & Business Media |isbn=978-0-7923-8159-4 |page=101 |url=https://www.google.com/books/edition/Real_Time_Systems_in_Mechatronic_Applica/fDCNR7VwG-AC?hl=en&gbpv=1&pg=PA101 |language=en}}</ref> अधिक सामान्यतः, आदिम डेटा प्रकार एक [[प्रोग्रामिंग भाषा]] में निर्मित मानक डेटा प्रकारों को संदर्भित कर सकते हैं।<ref name=Khurana>{{cite book |last1=Khurana |first1=Rohit |title=Data and File Structure (For GTU), 2nd Edition |publisher=Vikas Publishing House |isbn=978-93-259-6005-3 |page=2 |url=https://www.google.com/books/edition/Data_and_File_Structure_For_GTU_2nd_Edit/s0JDDAAAQBAJ?hl=en&gbpv=1&pg=PA2 |language=en}}</ref><ref>{{cite book |last1=Chun |first1=Wesley |title=Core Python Programming |date=2001 |publisher=Prentice Hall Professional |isbn=978-0-13-026036-9 |page=77 |url=https://www.google.com/books/edition/Core_Python_Programming/mh0bU6NXrBgC?hl=en&gbpv=1&pg=PA77 |language=en}}</ref> डेटा प्रकार जो आदिम नहीं हैं उन्हें व्युत्पन्न या समग्र डेटा प्रकार कहा जाता है।<ref name=Khurana/>
[[कंप्यूटर विज्ञान]] में, प्राथमिकआदिम [[डेटा प्रकार]] मूल डेटा प्रकारों का एक समूह है जिससे अन्य सभी डेटा प्रकारों का निर्माण किया जाता है।<ref>{{cite book |last1=Stone |first1=R. G. |url=https://www.google.com/books/edition/Program_Construction/0k_xz8O2SewC?hl=en&gbpv=1&pg=PA18 |title=Program Construction |last2=Cooke |first2=D. J. |date=5 February 1987 |publisher=Cambridge University Press |isbn=978-0-521-31883-9 |page=18 |language=en-US}}</ref> विशेष रूप से यह अधिकांश एक विशेष केंद्रीय प्रसंस्करण इकाई द्वारा उपयोग किए जाने वाले डेटा प्रस्तुतियों के सीमित सेट को संदर्भित करता है, जिसका उपयोग सभी संकलित प्रोग्रामों को करना चाहिए। अधिकांश केंद्रीय प्रसंस्करण इकाई प्राथमिकआदिम डेटा प्रकारों के समान सेट का समर्थन करते हैं, चूँकि विशिष्ट प्रतिनिधित्व अलग-अलग होते हैं।<ref>{{cite book |last1=Wikander |first1=Jan |last2=Svensson |first2=Bertil |title=Real-Time Systems in Mechatronic Applications |date=31 May 1998 |publisher=Springer Science & Business Media |isbn=978-0-7923-8159-4 |page=101 |url=https://www.google.com/books/edition/Real_Time_Systems_in_Mechatronic_Applica/fDCNR7VwG-AC?hl=en&gbpv=1&pg=PA101 |language=en}}</ref> अधिक सामान्यतः, प्राथमिकआदिम डेटा प्रकार एक [[प्रोग्रामिंग भाषा]] में निर्मित मानक डेटा प्रकारों को संदर्भित कर सकते हैं।<ref name=Khurana>{{cite book |last1=Khurana |first1=Rohit |title=Data and File Structure (For GTU), 2nd Edition |publisher=Vikas Publishing House |isbn=978-93-259-6005-3 |page=2 |url=https://www.google.com/books/edition/Data_and_File_Structure_For_GTU_2nd_Edit/s0JDDAAAQBAJ?hl=en&gbpv=1&pg=PA2 |language=en}}</ref><ref>{{cite book |last1=Chun |first1=Wesley |title=Core Python Programming |date=2001 |publisher=Prentice Hall Professional |isbn=978-0-13-026036-9 |page=77 |url=https://www.google.com/books/edition/Core_Python_Programming/mh0bU6NXrBgC?hl=en&gbpv=1&pg=PA77 |language=en}}</ref> डेटा प्रकार जो प्राथमिकआदिम नहीं हैं उन्हें व्युत्पन्न या समग्र डेटा प्रकार कहा जाता है।<ref name=Khurana/>


आदिम प्रकार लगभग हमेशा मूल्य प्रकार होते हैं, किन्तु मिश्रित प्रकार भी मूल्य प्रकार हो सकते हैं।<ref>{{cite book |last1=Olsen |first1=Geir |last2=Allison |first2=Damon |last3=Speer |first3=James |title=Visual Basic .NET Class Design Handbook: Coding Effective Classes |date=1 January 2008 |publisher=Apress |isbn=978-1-4302-0780-1 |page=80 |url=https://www.google.com/books/edition/Visual_Basic_NET_Class_Design_Handbook/DUQnCgAAQBAJ?hl=en&gbpv=1&pg=PA80 |language=en}}</ref>
प्राथमिकआदिम प्रकार लगभग हमेशा मूल्य प्रकार होते हैं, किन्तु मिश्रित प्रकार भी मूल्य प्रकार हो सकते हैं।<ref>{{cite book |last1=Olsen |first1=Geir |last2=Allison |first2=Damon |last3=Speer |first3=James |title=Visual Basic .NET Class Design Handbook: Coding Effective Classes |date=1 January 2008 |publisher=Apress |isbn=978-1-4302-0780-1 |page=80 |url=https://www.google.com/books/edition/Visual_Basic_NET_Class_Design_Handbook/DUQnCgAAQBAJ?hl=en&gbpv=1&pg=PA80 |language=en}}</ref>




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


[[जावा (प्रोग्रामिंग भाषा)]] वर्चुअल मशीन का आदिम डेटा प्रकारों का सेट है:<ref>{{cite book |last1=Lindholm |first1=Tim |last2=Yellin |first2=Frank |last3=Bracha |first3=Gilad |last4=Buckley |first4=Alex |title=The Java® Virtual Machine Specification |date=13 February 2015 |url=https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.3 |chapter=Chapter 2. The Structure of the Java Virtual Machine}}</ref>
[[जावा (प्रोग्रामिंग भाषा)]] वर्चुअल मशीन का प्राथमिकआदिम डेटा प्रकारों का सेट है:<ref>{{cite book |last1=Lindholm |first1=Tim |last2=Yellin |first2=Frank |last3=Bracha |first3=Gilad |last4=Buckley |first4=Alex |title=The Java® Virtual Machine Specification |date=13 February 2015 |url=https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.3 |chapter=Chapter 2. The Structure of the Java Virtual Machine}}</ref>
* [[पूर्णांक (कंप्यूटर विज्ञान)]] प्रकार विभिन्न प्रकार की रेंज और [[सटीक (कंप्यूटर विज्ञान)|त्रुटिहीन (कंप्यूटर विज्ञान)]] के साथ (कंप्यूटर विज्ञान)<code>byte</code>, <code>short</code>, <code>int</code>, <code>long</code>, <code>char</code>)
* [[पूर्णांक (कंप्यूटर विज्ञान)]] प्रकार विभिन्न प्रकार की रेंज और [[सटीक (कंप्यूटर विज्ञान)|त्रुटिहीन (कंप्यूटर विज्ञान)]] के साथ (कंप्यूटर विज्ञान)<code>byte</code>, <code>short</code>, <code>int</code>, <code>long</code>, <code>char</code>)
* [[तैरनेवाला स्थल]] | सिंगल या डबल परिशुद्धता (कंप्यूटर विज्ञान) के साथ फ़्लोटिंग-पॉइंट नंबर; (<code>float</code>, <code>double</code>)
* [[तैरनेवाला स्थल]] | सिंगल या डबल परिशुद्धता (कंप्यूटर विज्ञान) के साथ फ़्लोटिंग-पॉइंट नंबर; (<code>float</code>, <code>double</code>)
* [[बूलियन डेटा प्रकार]], तार्किक मान सही और गलत। (<code>boolean</code>)
* [[बूलियन डेटा प्रकार]], तार्किक मान सही और गलत। (<code>boolean</code>)
* एक निष्पादन योग्य स्मृति पते का संदर्भ देने वाला मान। (<code>returnAddress</code>) यह जावा प्रोग्रामिंग भाषा से सुलभ नहीं है और सामान्यतः इसे छोड़ दिया जाता है।<ref>{{cite book |last1=Cowell |first1=John |title=Essential Java Fast: How to write object oriented software for the Internet |date=18 February 1997 |publisher=Springer Science & Business Media |isbn=978-3-540-76052-8 |page=27 |url=https://www.google.com/books/edition/Essential_Java_Fast/5M9_fBX4QicC?hl=en&gbpv=1&pg=PA27 |language=en}}</ref><ref>{{cite book |last1=Rakshit |first1=Sandip |last2=Panigrahi |first2=Goutam |title=A Hand Book of Objected Oriented Programming With Java |date=December 1995 |publisher=S. Chand Publishing |isbn=978-81-219-3001-7 |page=11 |url=https://www.google.com/books/edition/A_Hand_Book_of_Objected_Oriented_Program/aAsbEAAAQBAJ?hl=en&gbpv=1&pg=PA11 |language=en}}</ref>
* एक निष्पादन योग्य स्मृति पते का संदर्भ देने वाला मान। (<code>returnAddress</code>) यह जावा प्रोग्रामिंग भाषा से सुलभ नहीं है और सामान्यतः इसे छोड़ दिया जाता है।<ref>{{cite book |last1=Cowell |first1=John |title=Essential Java Fast: How to write object oriented software for the Internet |date=18 February 1997 |publisher=Springer Science & Business Media |isbn=978-3-540-76052-8 |page=27 |url=https://www.google.com/books/edition/Essential_Java_Fast/5M9_fBX4QicC?hl=en&gbpv=1&pg=PA27 |language=en}}</ref><ref>{{cite book |last1=Rakshit |first1=Sandip |last2=Panigrahi |first2=Goutam |title=A Hand Book of Objected Oriented Programming With Java |date=December 1995 |publisher=S. Chand Publishing |isbn=978-81-219-3001-7 |page=11 |url=https://www.google.com/books/edition/A_Hand_Book_of_Objected_Oriented_Program/aAsbEAAAQBAJ?hl=en&gbpv=1&pg=PA11 |language=en}}</ref>
ये आदिम प्रकार सामान्य रूप से कंप्यूटर हार्डवेयर द्वारा समर्थित होते हैं, संभवतः अलग-अलग पूर्णांक आकार या हार्डवेयर के लिए जो फ़्लोटिंग पॉइंट गायब है। ऐसे प्रिमिटिव पर ऑपरेशन सामान्यतः अधिक कुशल होते हैं। आदिम डेटा प्रकार जो प्रोसेसर के मूल हैं, कंप्यूटर की मेमोरी में वस्तुओं के साथ एक-से-एक पत्राचार करते हैं, और इन प्रकारों पर संचालन अधिकांश अधिकांशतः स्थितियों में सबसे तेज़ संभव होता है।<ref name="Agner">{{cite web |last1=Fog |first1=Agner |title=Optimizing software in C++ |url=https://www.agner.org/optimize/optimizing_cpp.pdf#page=29 |access-date=28 January 2022 |page=29 |quote=Integer operations are fast in most cases, [...]}}</ref> उदाहरण के लिए, पूर्णांक जोड़, एकल मशीन निर्देश के रूप में किया जा सकता है, और कुछ एकल निर्देश वाले वर्णों के अनुक्रम को संसाधित करने के लिए विशिष्ट निर्देश प्रदान करते हैं।<ref>{{Cite web|url=https://www.sciencedirect.com/topics/computer-science/single-instruction-single-data|title=Single Instruction Single Data - an overview &#124; ScienceDirect Topics}}</ref> किन्तु आदिम डेटा प्रकार का चुनाव प्रदर्शन को प्रभावित कर सकता है, उदाहरण के लिए फ्लोट की एक सरणी पर संचालित करने के लिए [[SIMD]] संचालन और डेटा प्रकारों का उपयोग करना तेज़ है।{{r|Agner|p=113}}
ये प्राथमिकआदिम प्रकार सामान्य रूप से कंप्यूटर हार्डवेयर द्वारा समर्थित होते हैं, संभवतः अलग-अलग पूर्णांक आकार या हार्डवेयर के लिए जो फ़्लोटिंग पॉइंट गायब है। ऐसे प्रिमिटिव पर ऑपरेशन सामान्यतः अधिक कुशल होते हैं। प्राथमिकआदिम डेटा प्रकार जो केंद्रीय प्रसंस्करण इकाई के मूल हैं, कंप्यूटर की मेमोरी में वस्तुओं के साथ एक-से-एक पत्राचार करते हैं, और इन प्रकारों पर संचालन अधिकांश अधिकांशतः स्थितियों में सबसे तेज़ संभव होता है।<ref name="Agner">{{cite web |last1=Fog |first1=Agner |title=Optimizing software in C++ |url=https://www.agner.org/optimize/optimizing_cpp.pdf#page=29 |access-date=28 January 2022 |page=29 |quote=Integer operations are fast in most cases, [...]}}</ref> उदाहरण के लिए, पूर्णांक जोड़, एकल मशीन निर्देश के रूप में किया जा सकता है, और कुछ एकल निर्देश वाले वर्णों के अनुक्रम को संसाधित करने के लिए विशिष्ट निर्देश प्रदान करते हैं।<ref>{{Cite web|url=https://www.sciencedirect.com/topics/computer-science/single-instruction-single-data|title=Single Instruction Single Data - an overview &#124; ScienceDirect Topics}}</ref> किन्तु प्राथमिकआदिम डेटा प्रकार का चुनाव प्रदर्शन को प्रभावित कर सकता है, उदाहरण के लिए फ्लोट की एक सरणी पर संचालित करने के लिए [[SIMD]] संचालन और डेटा प्रकारों का उपयोग करना तेज़ है।{{r|Agner|p=113}}
मूलभूत C_data_types#Basic_types का सेट जावा के समान है। कम से कम, चार प्रकार हैं, <code>char</code>, <code>int</code>, <code>float</code>, और <code>double</code>, किन्तु क्वालीफायर <code>short</code>, <code>long</code>, <code>signed</code>, और <code>unsigned</code> अर्थ है कि सी में कई लक्ष्य-निर्भर पूर्णांक और फ़्लोटिंग-पॉइंट आदिम प्रकार होते हैं।<ref>{{cite book |last1=Kernighan |first1=Brian W.|last2=Ritchie|first2=Dennis M. |title=The C programming language|chapter=2.2 Data Types and Sizes |date=1988 |location=Englewood Cliffs, N.J. |isbn=0131103709 |page=36 |edition=Second}}</ref>
मूलभूत C_data_types#Basic_types का सेट जावा के समान है। कम से कम, चार प्रकार हैं, <code>char</code>, <code>int</code>, <code>float</code>, और <code>double</code>, किन्तु क्वालीफायर <code>short</code>, <code>long</code>, <code>signed</code>, और <code>unsigned</code> अर्थ है कि सी में कई लक्ष्य-निर्भर पूर्णांक और फ़्लोटिंग-पॉइंट प्राथमिकआदिम प्रकार होते हैं।<ref>{{cite book |last1=Kernighan |first1=Brian W.|last2=Ritchie|first2=Dennis M. |title=The C programming language|chapter=2.2 Data Types and Sizes |date=1988 |location=Englewood Cliffs, N.J. |isbn=0131103709 |page=36 |edition=Second}}</ref>




Line 67: Line 67:
== एक्सएमएल स्कीमा ==
== एक्सएमएल स्कीमा ==


XML स्कीमा डेफिनिशन भाषा 19 आदिम डेटा प्रकारों का एक सेट प्रदान करती है:<ref>{{cite web |last1=Biron |first1=Paul V. |last2=Malhotra |first2=Ashok |title=XML Schema Part 2: Datatypes |url=https://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes |website=www.w3.org |access-date=29 January 2022 |edition=Second}}</ref>
XML स्कीमा डेफिनिशन भाषा 19 प्राथमिकआदिम डेटा प्रकारों का एक सेट प्रदान करती है:<ref>{{cite web |last1=Biron |first1=Paul V. |last2=Malhotra |first2=Ashok |title=XML Schema Part 2: Datatypes |url=https://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes |website=www.w3.org |access-date=29 January 2022 |edition=Second}}</ref>
* <code>string</code>: एक [[स्ट्रिंग (कंप्यूटर विज्ञान)]], [[यूनिकोड कोड बिंदु]]ओं का एक क्रम
* <code>string</code>: एक [[स्ट्रिंग (कंप्यूटर विज्ञान)]], [[यूनिकोड कोड बिंदु]]ओं का एक क्रम
* <code>boolean</code>: एक बूलियन डेटाटाइप
* <code>boolean</code>: एक बूलियन डेटाटाइप
Line 80: Line 80:
== अंतर्निर्मित प्रकार ==
== अंतर्निर्मित प्रकार ==


जावास्क्रिप्ट में, 7 आदिम डेटा प्रकार हैं: स्ट्रिंग, संख्या, बिगिंट, बूलियन, अपरिभाषित, प्रतीक और अशक्त। ये वस्तुएं नहीं हैं और इनकी कोई विधि नहीं है।<ref>{{cite web |title=Primitive - MDN Web Docs Glossary: Definitions of Web-related terms |url=https://developer.mozilla.org/en-US/docs/Glossary/Primitive |website=developer.mozilla.org |publisher=MDN}}</ref>
जावास्क्रिप्ट में, 7 प्राथमिकआदिम डेटा प्रकार हैं: स्ट्रिंग, संख्या, बिगिंट, बूलियन, अपरिभाषित, प्रतीक और अशक्त। ये वस्तुएं नहीं हैं और इनकी कोई विधि नहीं है।<ref>{{cite web |title=Primitive - MDN Web Docs Glossary: Definitions of Web-related terms |url=https://developer.mozilla.org/en-US/docs/Glossary/Primitive |website=developer.mozilla.org |publisher=MDN}}</ref>
विजुअल बेसिक .NET में, आदिम डेटा प्रकारों में 4 अभिन्न प्रकार, 2 फ़्लोटिंग-पॉइंट प्रकार, एक 16-बाइट दशमलव प्रकार, एक बूलियन प्रकार, एक दिनांक/समय प्रकार, एक यूनिकोड वर्ण प्रकार और एक यूनिकोड स्ट्रिंग प्रकार सम्मिलित होते हैं।<ref>{{cite web |title=Types in Visual Basic |url=https://docs.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/types#primitive-types |website=Microsoft Docs |access-date=18 May 2022 |language=en-us |date=18 September 2021}}</ref>
विजुअल बेसिक .NET में, प्राथमिकआदिम डेटा प्रकारों में 4 अभिन्न प्रकार, 2 फ़्लोटिंग-पॉइंट प्रकार, एक 16-बाइट दशमलव प्रकार, एक बूलियन प्रकार, एक दिनांक/समय प्रकार, एक यूनिकोड वर्ण प्रकार और एक यूनिकोड स्ट्रिंग प्रकार सम्मिलित होते हैं।<ref>{{cite web |title=Types in Visual Basic |url=https://docs.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/types#primitive-types |website=Microsoft Docs |access-date=18 May 2022 |language=en-us |date=18 September 2021}}</ref>


<!-- Please note: having constructs provided by the standard library does not make them "built-in" -->
सामान्य तौर पर, परिष्कृत प्रोग्रामिंग भाषाओं में बनाए जा सकने वाले डेटा प्रकारों में सम्मिलित हैं:
सामान्य तौर पर, परिष्कृत प्रोग्रामिंग भाषाओं में बनाए जा सकने वाले डेटा प्रकारों में सम्मिलित हैं:
* वर्ण और तार (#वर्ण और तार देखें)
* वर्ण और तार (#वर्ण और तार देखें)
Line 98: Line 97:


=== वर्ण और तार ===
=== वर्ण और तार ===
एक वर्ण (कंप्यूटिंग) प्रकार एक प्रकार है जो सभी [[यूनिकोड वर्ण]]ों का प्रतिनिधित्व कर सकता है, इसलिए कम से कम 21 बिट चौड़ा होना चाहिए। जूलिया जैसी कुछ भाषाओं में आदिम के रूप में एक वास्तविक 32-बिट यूनिकोड वर्ण प्रकार सम्मिलित है।<ref>{{cite web |title=Strings · The Julia Language |url=https://docs.julialang.org/en/v1/manual/strings/#man-characters |website=docs.julialang.org |access-date=29 January 2022}}</ref> अन्य भाषाओं जैसे कि जावास्क्रिप्ट, पायथन (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज), और [[बुनियादी|मूलभूत]] की कई बोलियों में एक आदिम वर्ण प्रकार नहीं है, किन्तु स्ट्रिंग (कंप्यूटर विज्ञान) को एक आदिम डेटा प्रकार के रूप में जोड़ते हैं, सामान्यतः [[UTF-8]] का उपयोग करते हुए एन्कोडिंग। एक की लंबाई वाले तार सामान्यतः एकल वर्णों का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।
एक वर्ण (कंप्यूटिंग) प्रकार एक प्रकार है जो सभी [[यूनिकोड वर्ण]]ों का प्रतिनिधित्व कर सकता है, इसलिए कम से कम 21 बिट चौड़ा होना चाहिए। जूलिया जैसी कुछ भाषाओं में प्राथमिकआदिम के रूप में एक वास्तविक 32-बिट यूनिकोड वर्ण प्रकार सम्मिलित है।<ref>{{cite web |title=Strings · The Julia Language |url=https://docs.julialang.org/en/v1/manual/strings/#man-characters |website=docs.julialang.org |access-date=29 January 2022}}</ref> अन्य भाषाओं जैसे कि जावास्क्रिप्ट, पायथन (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज), और [[बुनियादी|मूलभूत]] की कई बोलियों में एक प्राथमिकआदिम वर्ण प्रकार नहीं है, किन्तु स्ट्रिंग (कंप्यूटर विज्ञान) को एक प्राथमिकआदिम डेटा प्रकार के रूप में जोड़ते हैं, सामान्यतः [[UTF-8]] का उपयोग करते हुए एन्कोडिंग। एक की लंबाई वाले तार सामान्यतः एकल वर्णों का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।


कुछ भाषाओं में वर्ण या स्ट्रिंग प्रकार होते हैं जो सभी यूनिकोड वर्णों या स्ट्रिंग्स का प्रतिनिधित्व करने के लिए बहुत छोटे होते हैं। इन्हें अधिक उचित रूप से पूर्णांक प्रकारों के रूप में वर्गीकृत किया गया है। उदाहरण के लिए सी में ए सम्मिलित है <code>char</code> प्रकार, किन्तु इसे स्मृति की सबसे छोटी पता योग्य इकाई के रूप में परिभाषित किया गया है, जिसे कई मानकों, जैसे [[POSIX]] को 8 [[अंश]]्स की आवश्यकता होती है। इन मानकों का हालिया संस्करण संदर्भित करता है <code>char</code> एक संख्यात्मक प्रकार के रूप में। <code>char</code> जावा (प्रोग्रामिंग भाषा) में 16-बिट पूर्णांक प्रकार के लिए भी प्रयोग किया जाता है, किन्तु फिर से यह एक यूनिकोड वर्ण प्रकार नहीं है।<ref>{{cite web |last1=Mansoor |first1=Umer |title=The char Type in Java is Broken |url=https://codeahoy.com/2016/05/08/the-char-type-in-java-is-broken/ |website=CodeAhoy |date=8 May 2016 |access-date=10 February 2020 |ref=3}}</ref> कुछ कंप्यूटर हार्डवेयर में कुछ निर्देश होते हैं जो बाइट्स के अनुक्रम का जिक्र करते हुए स्ट्रिंग्स से निपटते हैं। उदाहरण के लिए, x86-64 वस्तुओं के अनुक्रम को स्थानांतरित, सेट, खोज या तुलना कर सकता है, जहां कोई आइटम 1, 2, 4 या 8 बाइट लंबा हो सकता है।<ref>{{cite web|title=I/O and string instructions|access-date=29 January 2022|url=http://linasm.sourceforge.net/docs/instructions/cpu.php#bit}}</ref>
कुछ भाषाओं में वर्ण या स्ट्रिंग प्रकार होते हैं जो सभी यूनिकोड वर्णों या स्ट्रिंग्स का प्रतिनिधित्व करने के लिए बहुत छोटे होते हैं। इन्हें अधिक उचित रूप से पूर्णांक प्रकारों के रूप में वर्गीकृत किया गया है। उदाहरण के लिए सी में ए सम्मिलित है <code>char</code> प्रकार, किन्तु इसे स्मृति की सबसे छोटी पता योग्य इकाई के रूप में परिभाषित किया गया है, जिसे कई मानकों, जैसे [[POSIX]] को 8 [[अंश]]्स की आवश्यकता होती है। इन मानकों का हालिया संस्करण संदर्भित करता है <code>char</code> एक संख्यात्मक प्रकार के रूप में। <code>char</code> जावा (प्रोग्रामिंग भाषा) में 16-बिट पूर्णांक प्रकार के लिए भी प्रयोग किया जाता है, किन्तु फिर से यह एक यूनिकोड वर्ण प्रकार नहीं है।<ref>{{cite web |last1=Mansoor |first1=Umer |title=The char Type in Java is Broken |url=https://codeahoy.com/2016/05/08/the-char-type-in-java-is-broken/ |website=CodeAhoy |date=8 May 2016 |access-date=10 February 2020 |ref=3}}</ref> कुछ कंप्यूटर हार्डवेयर में कुछ निर्देश होते हैं जो बाइट्स के अनुक्रम का जिक्र करते हुए स्ट्रिंग्स से निपटते हैं। उदाहरण के लिए, x86-64 वस्तुओं के अनुक्रम को स्थानांतरित, सेट, खोज या तुलना कर सकता है, जहां कोई आइटम 1, 2, 4 या 8 बाइट लंबा हो सकता है।<ref>{{cite web|title=I/O and string instructions|access-date=29 January 2022|url=http://linasm.sourceforge.net/docs/instructions/cpu.php#bit}}</ref>
Line 104: Line 103:


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


== यह भी देखें ==
== यह भी देखें ==
* [[भाषा आदिम]]
* [[भाषा आदिम|भाषा प्राथमिकआदिम]]
* {{section link|List of data structures|Data types}}
* {{section link|List of data structures|Data types}}
* [[वस्तु प्रकार]]
* [[वस्तु प्रकार]]
* [[आदिम आवरण वर्ग]]
* [[आदिम आवरण वर्ग|प्राथमिकआदिम आवरण वर्ग]]
* [[चर (कंप्यूटर विज्ञान)]]
* [[चर (कंप्यूटर विज्ञान)]]



Revision as of 05:05, 20 February 2023

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

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


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

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

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


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

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

Size (bytes) Size (bits) Names Signed range (two's complement representation) Unsigned range
1 byte 8 bits Byte, octet, minimum size of char in C99( see limits.h CHAR_BIT) −128 to +127 0 to 255
2 bytes 16 bits x86 word, minimum size of short and int in C −32,768 to +32,767 0 to 65,535
4 bytes 32 bits x86 double word, minimum size of long in C, actual size of int for most modern C compilers,[12] pointer for IA-32-compatible processors −2,147,483,648 to +2,147,483,647 0 to 4,294,967,295
8 bytes 64 bits x86 quadruple word, minimum size of long long in C, actual size of long for most modern C compilers,[12] pointer for x86-64-compatible processors −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]


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

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

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

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

जावास्क्रिप्ट में, 7 प्राथमिकआदिम डेटा प्रकार हैं: स्ट्रिंग, संख्या, बिगिंट, बूलियन, अपरिभाषित, प्रतीक और अशक्त। ये वस्तुएं नहीं हैं और इनकी कोई विधि नहीं है।[18] विजुअल बेसिक .NET में, प्राथमिकआदिम डेटा प्रकारों में 4 अभिन्न प्रकार, 2 फ़्लोटिंग-पॉइंट प्रकार, एक 16-बाइट दशमलव प्रकार, एक बूलियन प्रकार, एक दिनांक/समय प्रकार, एक यूनिकोड वर्ण प्रकार और एक यूनिकोड स्ट्रिंग प्रकार सम्मिलित होते हैं।[19]

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

वर्ण और तार

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

कुछ भाषाओं में वर्ण या स्ट्रिंग प्रकार होते हैं जो सभी यूनिकोड वर्णों या स्ट्रिंग्स का प्रतिनिधित्व करने के लिए बहुत छोटे होते हैं। इन्हें अधिक उचित रूप से पूर्णांक प्रकारों के रूप में वर्गीकृत किया गया है। उदाहरण के लिए सी में ए सम्मिलित है char प्रकार, किन्तु इसे स्मृति की सबसे छोटी पता योग्य इकाई के रूप में परिभाषित किया गया है, जिसे कई मानकों, जैसे POSIX को 8 अंश्स की आवश्यकता होती है। इन मानकों का हालिया संस्करण संदर्भित करता है char एक संख्यात्मक प्रकार के रूप में। char जावा (प्रोग्रामिंग भाषा) में 16-बिट पूर्णांक प्रकार के लिए भी प्रयोग किया जाता है, किन्तु फिर से यह एक यूनिकोड वर्ण प्रकार नहीं है।[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.


बाहरी संबंध