तुलना चार्ट:
तुलना के लिए आधार | कास्टिंग टाइप करें | रूपांतरण टाइप करें |
---|---|---|
अर्थ | एक डेटा प्रकार उपयोगकर्ता द्वारा दूसरे को सौंपा जाता है, एक कास्ट ऑपरेटर का उपयोग करके फिर इसे "टाइप कास्टिंग" कहा जाता है। | संकलक द्वारा एक डेटा प्रकार को दूसरे में स्वचालित रूप से परिवर्तित करना "प्रकार रूपांतरण" कहलाता है। |
आवेदन किया है | टाइप कास्टिंग को दो 'असंगत' डेटा प्रकारों पर भी लागू किया जा सकता है। | टाइप रूपांतरण केवल तब लागू किया जा सकता है जब दो डेटा प्रकार 'संगत' हों। |
ऑपरेटर | डेटा टाइप को दूसरे में डालने के लिए, एक कास्टिंग ऑपरेटर '(') की आवश्यकता होती है। | कोई ऑपरेटर की आवश्यकता नहीं है। |
डेटा प्रकारों का आकार | गंतव्य प्रकार स्रोत प्रकार से छोटा हो सकता है। | यहाँ गंतव्य प्रकार स्रोत प्रकार से बड़ा होना चाहिए। |
कार्यान्वित | यह प्रोग्राम डिजाइनिंग के दौरान किया जाता है। | यह संकलन करते समय स्पष्ट रूप से किया जाता है। |
रूपांतरण प्रकार | संकीर्ण रूपांतरण। | व्यापक रूपान्तरण। |
उदाहरण | int a; बाइट b; ... ... b = (बाइट) a; | int a = 3; फ्लोट बी; ख एक =; // मान b = 3.000 में। |
टाइप कास्टिंग की परिभाषा
टाइपिंग को प्रोग्रामर द्वारा प्रोग्राम डिजाइन के समय एक डेटा टाइप को दूसरे डेटा टाइप के कास्टिंग के रूप में परिभाषित किया जा सकता है। एक डेटा प्रकार का दूसरे में स्वचालित रूपांतरण, हर समय संभव नहीं है। यह शर्त हो सकती है कि 'गंतव्य प्रकार' 'स्रोत प्रकार' से छोटा है, इसलिए प्रोग्रामर को कास्टिंग ऑपरेटर '(') का उपयोग करके बड़े डेटा प्रकार को छोटे डेटा प्रकार में स्पष्ट रूप से डालना होगा। जैसा कि बड़े डेटा प्रकार को छोटे डेटा प्रकार में संशोधित किया जाता है, इसे 'संकीर्ण रूपांतरण' भी कहा जाता है।
Dest_type = (target_type) चर / मान // लक्ष्य प्रकार एक प्रकार है जिसमें आप स्रोत प्रकार को परिवर्तित करना चाहते हैं वह हमेशा गंतव्य प्रकार होता है।
आइए इसे एक उदाहरण से समझते हैं। आप डेटा प्रकार 'int' को 'बाइट' में बदलना चाहते हैं, अब, 'बाइट' 'int' से छोटा होने के कारण, टाइप रूपांतरण की अनुमति नहीं है। यहाँ, हमें कास्टिंग ऑपरेटर '()' का उपयोग करके 'int' को 'बाइट' में बदलना है। जैसे ही 'int' 'बाइट' से बड़ा होता है, 'int' का आकार "int mod बाइट" रेंज तक कम हो जाएगा।
int a; बाइट b; ... ... बी = (बाइट) ए;
जब 'फ्लोट' को 'इंट' में बदल दिया जाता है, तो फ्लोट का आकार छोटा हो जाता है, क्योंकि 'इंट' फ्रैक्शनल वैल्यू को स्टोर नहीं करता है। यदि स्रोत प्रकार फिट होने के लिए गंतव्य प्रकार का आकार बहुत छोटा है, तो स्रोत प्रकार modulo गंतव्य प्रकार 'श्रेणी' है। डेटा प्रकार संगत होने पर कास्टिंग भी लागू किया जा सकता है, जहां भी रूपांतरण की आवश्यकता होती है वहां टाइप कास्टिंग का उपयोग करना अच्छा है।
प्रकार रूपांतरण की परिभाषा
टाइप कनवर्जन एक डाटा टाइप का ऑटोमैटिक रूपांतरण है जब भी आवश्यक हो, कंपाइलर द्वारा स्पष्ट रूप से किया जाता है। लेकिन टाइप रूपांतरण से पहले संतुष्ट होने के लिए दो शर्तें हैं।
- स्रोत और गंतव्य प्रकार संगत होना चाहिए।
- गंतव्य प्रकार स्रोत प्रकार से बड़ा होना चाहिए।
इन दो स्थितियों को टाइप रूपांतरण प्राप्त करने के लिए संतुष्ट करना चाहिए, और इस प्रकार के रूपांतरण को 'विवर्तन रूपांतरण' कहा जाता है, क्योंकि छोटे प्रकार को बड़े प्रकार में परिवर्तित किया जाता है, प्रकार का चौड़ीकरण होता है। इस चौड़ी रूपांतरण के लिए, 'int' के रूप में संख्यात्मक प्रकार, 'float' एक दूसरे के साथ संगत होते हैं जबकि संख्यात्मक char to char और बूलियन या char to boolean भी संगत नहीं होते हैं।
यह उदाहरण इस बारे में बेहतर दृष्टिकोण प्रदान करेगा
int a = 3; फ्लोट बी; ख एक =; // मान b = 3.000 में।
यहां, 'int' को 'float' में बदल दिया जाता है, जो 'int' से बड़ा होता है, इसलिए सोर्स टाइप का चौड़ीकरण होता है। यहां, कोई कास्टिंग ऑपरेटर की आवश्यकता नहीं है क्योंकि कंपाइलर इसे स्पष्ट रूप से करेगा।
टाइप कास्टिंग और रूपांतरण के बीच मुख्य अंतर
- बुनियादी अंतर जो टाइप रूपांतरण से टाइप कास्टिंग को अलग करता है, वह है टाइपिंग एक प्रकार से दूसरे में रूपांतरण, प्रोग्रामर द्वारा किया जाता है। दूसरी ओर, प्रकार रूपांतरण एक प्रकार से दूसरे में रूपांतरण होता है, संकलन करते समय कंपाइलर द्वारा किया जाता है।
- टाइप कास्टिंग को डेटाटाइप पर लागू किया जा सकता है जो एक दूसरे के साथ संगत नहीं हो सकता है लेकिन, टाइप रूपांतरण केवल डेटाटाइप पर लागू किया जा सकता है जो एक दूसरे के साथ संगत हैं।
- टाइप कास्टिंग में एक प्रकार से दूसरे प्रकार के रूपांतरण के लिए कास्टिंग ऑपरेटर "(") की आवश्यकता होती है, जबकि टाइप रूपांतरण में एक डेटा प्रकार से दूसरे में रूपांतरण के लिए किसी ऑपरेटर की आवश्यकता नहीं होती है।
- टाइपिंग कास्टिंग में एक डेटा प्रकार को दूसरे में परिवर्तित करते समय, गंतव्य प्रकार स्रोत प्रकार से बड़ा या छोटा हो सकता है। दूसरी ओर, गंतव्य प्रकार प्रकार रूपांतरण में स्रोत प्रकार से बड़ा होना चाहिए।
- एक प्रकार से दूसरे प्रकार का रूपांतरण टाइप कास्टिंग में कोडिंग करते समय किया जाता है, जबकि प्रकार रूपांतरण में, संकलन के दौरान एक प्रकार से दूसरे प्रकार का रूपांतरण स्पष्ट रूप से किया जाता है।
- टाइप कास्टिंग को रूपांतरण रूपांतरण कहा जाता है क्योंकि यहाँ गंतव्य प्रकार स्रोत प्रकार से छोटा हो सकता है जबकि, टाइप रूपांतरण को व्यापक रूपांतरण कहा जाता है क्योंकि यहाँ, गंतव्य प्रकार स्रोत प्रकार से बड़ा होना चाहिए।
निष्कर्ष:
यह निष्कर्ष निकाला जा सकता है कि टाइप रूपांतरण और टाइप कास्टिंग, दोनों एक डाटा टाइप को दूसरे में बदलने का कार्य करते हैं लेकिन इस मायने में भिन्न होता है कि टाइपिंग कास्टिंग प्रोग्रामर द्वारा की जाती है, कास्ट ऑपरेटर '(') और टाइप कन्वर्जन का उपयोग करके किया जाता है। संकलक, और यह किसी भी ऑपरेटर का उपयोग नहीं करता है।