Manual Type Conversion OR Casting
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQsNKKW1p9_KzzZT9S8zOtpIXWiPEXvb9QLDrkUBwWNlmIdzojdKYU4qEfILx8Tuc5sAso5_h3-w3UWhH48hCH2LdsUHWUzYXM8HB5tG0tVN1qeTettl3YAUnvyDPfuXNoYaZ1KMLJY7U/s600/Manual+Type+Conversion+OR+Casting.jpg)
Manual Type Conversion
OR Casting
जब हमें विशेष
प्रकार की गणनाएं करनी होती है , तब हम Automatic Type Conversion का प्रयोग नहीं कर
सकते हैं | ऐसे में हमें
विशेष प्रकार से Type Conversion करना पड़ता
है | इस प्रकार से
किसी Expression
में किसी Identifier के Declare किए Data Type को बदल कर नए Data Type में Convert करके गणना करते हैं |
इस
प्रकार के Conversion को Casting करना कहते हैं |
किसी Variable
के Data Type को किसी दूसरे Data Type में Convert करके Calculate Perform करने के लिए हमें उस Variable से पहले उसे Data
Type को Specify करना होता है , जिसमें Variable
के मान को Convert करना है |
उदाहरण
के लिए निम्न Program देखिए
Program
#include<stdio.h>
main()
{
int a = 15, b = 2;
float c;
c = a/b;
printf(“C is %f” ,c);
getch();
}
इस Program
को जब Run किया जाता है , तब हमें Output
में 7.000000 मान प्राप्त होता है , जबकि हमें
7.500000 मान प्राप्त होना चाहिए |
ऐसा
इसलिए होता है , क्योंकि Variable a व b दोनों ही Integer प्रकार के हैं |
हालांकि
Variable
c एक Float प्रकार का Variable है , लेकिन फिर भी ये Variable वही मान Store
कर सकता है , जो मान a/b Expression से Generate
होता है और a व b दोनों ही Integer होने की
वजह से दसमलव वाला मान 7.5 Generate नहीं कर सकते हैं ,
इसलिए Variable c में Store होने वाला Resultant
मान 7 ही होता है , जो एक Float प्रकार के Variable में Store होने
की वजह से 7.000000 में Convert हो
जाता है |
Variable c में 7.5 तभी Store हो सकता है
, जब a या b में से कोई Float प्रकार का हो |
इस
प्रकार की स्थिति में हमें इस Expression के लिए a
या b में से किसी एक Variable के मान को Float में Convert करना
जरुरी होता है |
किसी Variable
के मान को किसी एक Expression के लिए एक Type
से दूसरे Type में Convert करने के लिए हमें उसे Variable की Manual
Casting करनी पड़ती है और किसी Variable की Casting
करने के लिए हमें उस Variable से पहले Braces
के बीच में उस Data Type को Specify करना होता है , जिस Data Type में हम उस Variable
के मान को Change करना चाहते हैं |
पिछले
Program
के आधार पर इस प्रक्रिया को हम निम्नानुसार समझ सकते हैं ,
c=(float)a/b;
पिछले Program
में जब हम इस Statement को लिखे गए Statement
से Replace करते है, तो Output में हमें Variable का मान 7.5000000 प्राप्त होता है |
ऐसा
इलिए होता है , क्योंकि इस Statement के Execute
होने से पहले Variable a जो कि Integer
प्रकार का है , Float प्रकार के मान में Convert
हो जाता है |
चुंकि कभी भी दो
अलग प्रकार के Variables के बीच किसी प्रकार की Calculation
Perform नहीं होती है , इसलिए जब Integer प्रकार
के Variable a को Float प्रकार में Convert
कर दिया जाता है , तब Integer प्रकार का दूसरा
Variable b की भी Automatic Type Casting होती है और वह भी Float प्रकार के मान में Convert
हो जाता है | अब a व b
दोनों Float प्रकार के मान के आधार पर Calculation
Perform करते है , जिससे Float प्रकार का मान 7.5
Generate होता है |
Assignment Operator इस मान 7.5 को Variable c में store
कर देता है और जब हम Variable c के मान को Screen
पर Display करते है , तब हमें Variable
c का मान 7.5000000 प्राप्त होता है |
यदि
हम चाहे तो उपरोक्त Statement को निम्नानुसार
भी लिख सकते है |
c=a/(float)b;
Statement को इस तरह से लिखने पर भी Program के Output पर कोई फर्क नहीं पड़ता है और हमें वही Output प्राप्त
होता है , जो पिछले Statement का प्राप्त होता है |
Modified
Program को हम निम्नानुसार लिख सकते हैं |
#include<stdio.h>
main()
{
int a = 15, b = 2;
float c;
c = (float) a / b;
printf(“C is %f”,c);
}
No comments