Header Ads

ad728
  • New Updates

    Manual Type Conversion OR Casting


    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 को हम निम्नानुसार लिख सकते हैं |

    Program
    
    #include<stdio.h>
    main()
    {
    int a = 15, b = 2;
    float c;
    c = (float) a / b;
    printf(“C is %f”,c);
    }
    

    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728