प्राथमिक डेटा प्रकार

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

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

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

मूलभूत सी डेटा प्रकारों का सेट जावा के समान है। इसके कम से कम, चार प्रकार हैं, ,  ,  , और  , किन्तु क्वालीफायर  ,  ,  , और   अर्थ है कि सी में कई लक्ष्य-निर्भर पूर्णांक और चल बिन्दु  प्राथमिक प्रकार होते हैं।

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

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

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

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

एक्सएमएल स्कीमा
एक्सएमएल स्कीमा डेफिनिशन भाषा 19 प्राथमिक डेटा प्रकारों का सेट प्रदान करती है:
 * : स्ट्रिंग (कंप्यूटर विज्ञान), यूनिकोड कोड बिंदुओं का क्रम
 * : बूलियन डेटाटाइप
 * : दशमलव संकेतन के साथ प्रदर्शित संख्या
 * और : दशमलव संख्याएं
 * ,,  ,  ,  ,  ,  ,  , और  : कैलेंडर दिनांक और समय
 * और : बाइनरी डेटा हेक्साडेसिमल या बेस 64 के रूप में एन्कोड किया गया हैं।
 * : घृणा करना
 * : क्यूनाम
 * : क्यूनाम स्कीमा में टिप्पणी के रूप में घोषित किया गया। गैर-एक्सएमएल डेटा प्रकारों को एम्बेड करने के लिए टिप्पणी का उपयोग किया जाता है। इस प्रकार का सीधे तौर पर उपयोग नहीं किया जा सकता है - केवल व्युत्पन्न प्रकारों का उपयोग किया जा सकता है जो क्यूनामों के सीमित सेट की गणना करते हैं।

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

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

सामान्य तौर पर, परिष्कृत प्रोग्रामिंग भाषाओं में बनाए जा सकने वाले डेटा प्रकारों में सम्मिलित हैं:
 * वर्ण और तार (वर्ण और तार देखें)
 * श्रेणियां (देखें श्रेणी)
 * मानक एमएल में टपल, पायथन (प्रोग्रामिंग लैंग्वेज), स्काला (प्रोग्रामिंग भाषा), स्विफ्ट (प्रोग्रामिंग भाषा), अमृत ​​​​(प्रोग्रामिंग भाषा)
 * सामान्य लिस्प, पायथन (प्रोग्रामिंग भाषा), योजना (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा) में सूची (सार डेटा प्रकार)
 * विभिन्न प्रकार की शुद्धता (कंप्यूटर विज्ञान) और प्रोग्रामर-चयनित पैमाने के साथ निश्चित-बिंदु संख्या।
 * C99, फोरट्रान, कॉमन लिस्प, पायथन (प्रोग्रामिंग लैंग्वेज), D (प्रोग्रामिंग लैंग्वेज), जाओ (प्रोग्रामिंग भाषा) में जटिल डेटा प्रकार यह दो चल बिन्दु, वास्तविक भाग और काल्पनिक भाग संख्याएँ हैं।
 * सामान्य लिस्प में तर्कसंगत डेटा प्रकार
 * स्वैछिक-परिशुद्धता अंकगणित|  सामान्य लिस्प, एरलांग (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा) में टाइप करें
 * पर्ल, पीएचपी, पायथन (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, लुआ (प्रोग्रामिंग लैंग्वेज), डी (प्रोग्रामिंग लैंग्वेज), गो (प्रोग्रामिंग लैंग्वेज) में साहचर्य सरणी
 * संदर्भ (कंप्यूटर विज्ञान) (जिसे पॉइंटर (कंप्यूटर प्रोग्रामिंग) या हैंडल या डिस्क्रिप्टर भी कहा जाता है),
 * प्रथम श्रेणी के कार्य, सभी कार्यात्मक प्रोग्रामिंग भाषाओं में, जावास्क्रिप्ट, लुआ (प्रोग्रामिंग भाषा), डी (प्रोग्रामिंग भाषा), गो (प्रोग्रामिंग भाषा), और सी ++, जावा (प्रोग्रामिंग भाषा), सी शार्प (प्रोग्रामिंग भाषा) पर्ल के नए मानकों में )|

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

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

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

यह भी देखें

 * भाषा प्राथमिक
 * वस्तु प्रकार
 * प्राथमिक आवरण वर्ग
 * चर (कंप्यूटर विज्ञान)
 * चर (कंप्यूटर विज्ञान)