Showing posts with label type casting differences. Show all posts
Showing posts with label type casting differences. Show all posts

Wednesday, January 17, 2024

ஜாவாவில் டைப் கன்வெர்சனுக்கும் டைப் காஸ்டிங்கிற்க்கும் என்ன வேறுபாடு?

 



 

டைப் காஸ்டிங்: டைப் காஸ்டிங்கில் , நிரல் வடிவமைப்பின் போது காஸ்டிங் ஆபரேட்டரைப் பயன்படுத்தி ஒரு தரவு வகை மற்றொரு தரவு வகையாக மாற்றப்படுகிறது. டைப் காஸ்டிங்கில் தரவு வகையை மற்றொரு தரவு வகைக்கு மாற்றும் போது, மூல தரவு வகையை விட இலக்கு தரவு வகை சிறியதாக இருக்கலாம், அதனால்தான் இது குறுகலான மாற்றம்(narrowing conversion) என்றும் அழைக்கப்படுகிறது.

 

 

Syntax/Declaration:-

destination_datatype = (target_datatype)variable;

 

 

(): is a casting operator.

சான்று:

float x;
byte y;
...
...
y=(byte)x;  //Line 5 
மேலே உள்ள சான்றில் டேட்டாவானது float டைப்பில் இருந்து byte டைப்பிற்கு மாற்றப்படுகின்றது.

டைப் கன்வெர்சன்:

டைப் கன்வெர்சன்: டைப் கன்வெர்சனில் , ஒரு தரவு வகையானது கம்பைலர் நேரத்தில் கம்பைலர் மூலம் தானாகவே மற்றொரு தரவு வகையாக மாற்றப்படும். வகை மாற்றத்தில், இலக்கு தரவு வகையானது மூல தரவு வகையை விட சிறியதாக இருக்க முடியாது, அதனால்தான் இது விரிவடைதல் மாற்றம்(widening conversion) என்றும் அழைக்கப்படுகிறது. இன்னும் ஒரு முக்கியமான விஷயம் என்னவென்றால், இது இணக்கமான தரவு வகைகளுக்கு மட்டுமே பயன்படுத்தப்படும்.

சான்று:

int x=30;
float y;
y=x;  // y==30.000000. 

டைப் காஸ்டிங்க் டைப் கன்வெர்சன் என்ன வேறுபாடு?

1.     டைப் காஸ்டிங்கில் டேட்டாவானது சோர்ஸ் டேட்டா டைப்பில் இருந்து டாடர்கெட் டேட்டா டைப்பிற்கு காஸ்டிங்க் ஆபரேட்டர் மூலம் செய்யப்படுகின்றது. டைப் கன்வெர்சனில் கம்பைலர் மூலம் செய்யப்படுகின்றது.

2.     டைப் காஸ்டினை கம்பேசிபிள் டேட்டா டைப்  மற்றும் இங்கம்பேசிபிள் சேட்டா டைப் இரண்டிற்க்கும் பய்ன்படுத்தலாம். டைப் கன்வெர்சன் ஆனது கம்பேசிபிள் டைப்பிற்கு மட்டுமே(அதாவது சோர்ஸ் டைப்பானது டார்கெட்டை விட பெரியதாக இருக்க வேண்டும்

3.     டைப் காஸ்ஃப்டிங்கில் காஸ்டிங்கில் காஸ்ட் ஆபரேட்டர் (()) தேவைப்படுகின்றது. டைப் கன்வெர்சனுக்கு தேவை இல்லை.

4.     டைப் காஸ்டெனிங்க் ஆனது நேரோவிங்க் (Narrowing)கன்வெர்சன் என்றும் டைப் கன்வெர்சன் ஆனது வைடெனிங்க்(widening) கன்வெர்சன் எனவும் அழைக்கப்ப்டுகின்றது.

 

         --நன்றி

            முத்து கார்த்திகேயன்,மதுரை

                                                                                                                                                                                                            .

ads Udanz