Integer literal
कंप्यूटर विज्ञान में, एक पूर्णांक शाब्दिक एक पूर्णांक के लिए एक प्रकार का शाब्दिक है जिसका मान सीधे स्रोत कोड में दर्शाया जाता है। उदाहरण के लिए, असाइनमेंट स्टेटमेंट x = 1 में, स्ट्रिंग 1 एक पूर्णांक शाब्दिक है जो मान 1 को दर्शाता है, जबकि स्टेटमेंट x = 0x10 में स्ट्रिंग 0x10 एक पूर्णांक शाब्दिक है जो मान 16 को दर्शाता है, जिसे हेक्साडेसिमल में 10 द्वारा दर्शाया जाता है (0x उपसर्ग द्वारा इंगित)। इसके विपरीत, x = cos (0) में, अभिव्यक्ति cos (0) का मूल्यांकन 1 (0 की कोसाइन के रूप में) किया जाता है, लेकिन मान 1 शाब्दिक रूप से स्रोत कोड में शामिल नहीं है। अधिक सरलता से, x = 2 + 2 में, अभिव्यक्ति 2 + 2 का मूल्यांकन 4 से किया जाता है, लेकिन मान 4 को शाब्दिक रूप से शामिल नहीं किया गया है। इसके अलावा, x = "1" में "1" एक स्ट्रिंग शाब्दिक है, न कि एक पूर्णांक शाब्दिक, क्योंकि यह उद्धरणों में है। स्ट्रिंग का मान 1 है, जो एक पूर्णांक स्ट्रिंग होता है, लेकिन यह स्ट्रिंग का शाब्दिक अर्थ विश्लेषण है-वाक्यविन्यास स्तर पर "1" केवल एक स्ट्रिंग है, जो "फू" से अलग नहीं है। पार्सिंग एक स्ट्रिंग (स्रोत कोड में वर्णों के अनुक्रम) को एक पूर्णांक शाब्दिक के रूप में पहचानना शाब्दिक विश्लेषण (लेक्सिंग) चरण का हिस्सा है, जबकि शाब्दिक का उसके मूल्य के लिए मूल्यांकन करना शब्दार्थ विश्लेषण चरण का हिस्सा है। लेक्सर और वाक्यांश व्याकरण के भीतर, टोकन वर्ग को अक्सर पूर्णांक के रूप में दर्शाया जाता है, जिसमें छोटे अक्षर एक लेक्सिकल-स्तर के टोकन वर्ग का संकेत देते हैं, जैसा कि वाक्यांश-स्तर उत्पादन नियम (जैसे लिस्टऑफ़इंटेजर्स) के विपरीत है। एक बार जब एक स्ट्रिंग को एक पूर्णांक शाब्दिक के रूप में लेक्स (टोकनाइज़्ड) किया जाता है, तो इसका मान वाक्यात्मक रूप से निर्धारित नहीं किया जा सकता है (यह सिर्फ एक पूर्णांक है), और इसके मूल्य का मूल्यांकन एक शब्दार्थ प्रश्न बन जाता है। पूर्णांक अक्षरों को आम तौर पर नियमित अभिव्यक्तियों के साथ लिखा जाता है, जैसा कि पायथन में होता है। मूल्यांकन अन्य अक्षरों की तरह, पूर्णांक अक्षरों का मूल्यांकन आम तौर पर संकलन समय पर, शब्दार्थ विश्लेषण चरण के हिस्से के रूप में किया जाता है। कुछ मामलों में यह शब्दार्थ विश्लेषण अक्षर में किया जाता है, एक पूर्णांक शाब्दिक की पहचान के तुरंत बाद, जबकि अन्य मामलों में इसे पार्सिंग चरण तक या पार्स ट्री के पूरी तरह से निर्माण होने तक स्थगित कर दिया जाता है। उदाहरण के लिए, स्ट्रिंग 0x10 को पहचानने पर लेक्सर तुरंत इसका मूल्यांकन 16 कर सकता है और उसे (प्रकार पूर्णांक और मान 16 का एक टोकन) संग्रहीत कर सकता है, या मूल्यांकन को स्थगित कर सकता है और इसके बजाय प्रकार पूर्णांक और मान 0x10 का एक टोकन रिकॉर्ड कर सकता है। एक बार अक्षरों का मूल्यांकन हो जाने के बाद, निरंतर तह के रूप में आगे शब्दार्थ विश्लेषण संभव है, जिसका अर्थ है कि शाब्दिक मूल्यों से युक्त शाब्दिक अभिव्यक्तियों का मूल्यांकन संकलन चरण में किया जा सकता है। उदाहरण के लिए, कथन x = 2 + 2 में अक्षरों के मूल्यांकन के बाद और अभिव्यक्ति 2 + 2 को विश्लेषित करने के बाद, इसका मूल्यांकन 4 किया जा सकता है, हालांकि मान 4 स्वयं एक शाब्दिक के रूप में दिखाई नहीं देता है। पूर्णांक अक्षरों में अक्सर आधार का संकेत देने वाले उपसर्ग होते हैं, और कम बार प्रत्यय प्रकार का संकेत देते हैं। उदाहरण के लिए, सी + + 0x10यूएलएल में मान 16 (क्योंकि हेक्साडेसिमल) को एक अहस्ताक्षरित लंबे पूर्णांक के रूप में इंगित करता है। सामान्य उपसर्गों में हेक्साडेसिमल (आधार 16) के लिए 0x या 0X; ऑक्टल (आधार 8) के लिए 0,0o या 0O; द्विआधारी (आधार 2) के लिए 0b या 0B शामिल हैं। आम प्रत्यय में शामिल हैंः लंबे पूर्णांक के लिए l या L; लंबे लंबे पूर्णांक के लिए ll या LL; अहस्ताक्षरित पूर्णांक के लिए u या U। ये एफिक्स कुछ हद तक सिगिल के समान हैं, हालांकि सिगिल पहचानकर्ताओं (नामों) से जुड़े होते हैं, शाब्दिक नहीं। अंक विभाजक कुछ भाषाओं में, पूर्णांक अक्षरों में अंक विभाजक हो सकते हैं जो अंक को अधिक सुपाठ्य रूपों में समूहित करने की अनुमति देते हैं। यदि यह उपलब्ध है, तो यह आमतौर पर फ्लोटिंग पॉइंट लिटरल के लिए भी किया जा सकता है। यह विशेष रूप से बिट क्षेत्रों के लिए उपयोगी है और अंकों को गिनने के बजाय सबटाइज़ करके एक नज़र में बड़ी संख्या (जैसे दस लाख) के आकार को देखना आसान बनाता है। यह उन संख्याओं के लिए भी उपयोगी है जिन्हें आम तौर पर समूहीकृत किया जाता है, जैसे कि क्रेडिट कार्ड संख्या या सामाजिक सुरक्षा संख्या। बहुत लंबी संख्या को विभाजक को दोगुना करके आगे समूहीकृत किया जा सकता है। आम तौर पर दशमलव संख्या (आधार-10) को तीन अंकों के समूहों (1000 संभावित मूल्यों में से एक का प्रतिनिधित्व करने वाले), द्विआधारी संख्या (आधार-2) को चार अंकों के समूहों (एक निब्बल, जो 16 संभावित मूल्यों में से एक का प्रतिनिधित्व करता है), और हेक्साडेसिमल संख्या (आधार-16) को दो अंकों के समूहों में समूहीकृत किया जाता है (प्रत्येक अंक एक निब्बल है, इसलिए दो अंक एक बाइट हैं, जो 256 संभावित मूल्यों में से एक का प्रतिनिधित्व करते हैं)। अन्य प्रणालियों (जैसे आई. डी. संख्याएँ) की संख्याओं को उपयोग में आने वाली किसी भी परंपरा के बाद समूहीकृत किया जाता है। उदाहरण में अडा, सी #(संस्करण 7 से), डी, एफिल, गो (संस्करण 1.13 से), हास्केल (जीएचसी संस्करण 8.6.1 से), जावा (संस्करण 7 से), जूलिया, पर्ल, पायथन (संस्करण 3.6 से), रूबी, रस्ट और स्विफ्ट, पूर्णांक अक्षर और फ्लोट अक्षरों को एक अंडरस्कोर (_) के साथ अलग किया जा सकता है। प्लेसमेंट पर कुछ प्रतिबंध हो सकते हैं; उदाहरण के लिए, जावा में वे शाब्दिक के प्रारंभ या अंत में दिखाई नहीं दे सकते हैं, न ही दशमलव बिंदु के बगल में। ध्यान दें कि अंक पृथक्करण के लिए सामान्य लेखन में अवधि, अल्पविराम और (पतले) रिक्त स्थान का उपयोग किया जाता है, ये मूलांक बिंदु, सूची विभाजक (और सी/सी + + में, अल्पविराम प्रचालक) और टोकन विभाजक के रूप में प्रोग्रामिंग भाषाओं में उनके मौजूदा उपयोग के साथ संघर्ष करते हैं। उदाहरणों में शामिल हैंः इंट वन मिलियन = 1,000,000; इंट क्रेडिटकार्ड नंबर = 1234 _ 5678 _ 9012 _ 3456; इंट सोशलसिक्योरिटी नंबर = 123 _ 45 _ 6789; सी + + 14 (2014) और सी, सी 23 के अगले संस्करण में, एपोस्ट्रोफी वर्ण का उपयोग संख्यात्मक अक्षरों में मनमाने ढंग से अंकों को अलग करने के लिए किया जा सकता है। अंडरस्कोर को शुरू में 1993 में एक प्रारंभिक प्रस्ताव के साथ प्रस्तावित किया गया था, और फिर से सी + + 11 के लिए, अन्य भाषाओं का अनुसरण करते हुए। हालाँकि, यह उपयोगकर्ता-परिभाषित अक्षरों के साथ संघर्ष का कारण बना, इसलिए एपोस्ट्रोफी को इसके बजाय "ऊपरी अल्पविराम" (जो कुछ अन्य संदर्भों में उपयोग किया जाता है) के रूप में प्रस्तावित किया गया था। स्वतः पूर्णांक _ शाब्दिक = 1'000'000; स्वतः द्विआधारी _ शाब्दिक = 0b 0100'1100'0110; स्वतः बहुत _ लंबा _ द्विआधारी _ शाब्दिक = 0b 0000'0001'0010 '0011' 0100'0101'0110 '0111; टिप्पणियाँ संदर्भ शाब्दिक स्रोत कोड