முழு எண்ணிற்கும் நீண்ட காலத்திற்கும் இடையிலான வேறுபாடு
உள்ளடக்கம்
ஜாவாவில் விவரிக்கப்பட்டுள்ள இரண்டு முழு தரவு வகைகளில் int மற்றும் long என்ற தரவு வகைகள் உள்ளன. ஜாவாவில், int மற்றும் long வகைகள் கையொப்பமிடப்பட்டுள்ளன, + ve மற்றும் -ve மதிப்புகள். கையொப்பமிடாத முழு எண்ணையும் நீண்ட வகைகளையும் ஜாவா ஆதரிக்கவில்லை. ஒரு முழு எண்ணிற்கும் நீண்ட தரவு வகைக்கும் இடையிலான அடிப்படை வேறுபாடு ஒவ்வொரு வகையின் அகலமாகும். டேட்டாடைப் எண்ணானது முழு எண்ணின் மாறுபாட்டிற்கான 32-பிட் அகலத்தைக் கொண்டுள்ளது. மறுபுறம், தரவு வகை நீளமானது நீண்ட வகையின் மாறிக்கு 64-பிட் அகலத்தைக் கொண்டுள்ளது. கீழே உள்ள ஒப்பீட்டு விளக்கப்படம் முழு எண்ணிற்கும் நீளத்திற்கும் இடையிலான வேறு சில வேறுபாடுகளைக் காட்டுகிறது.
- ஒப்பீட்டு விளக்கப்படம்
- வரையறை
- முக்கிய வேறுபாடுகள்
- முடிவுரை
ஒப்பீட்டு விளக்கப்படம்
ஒப்பீட்டுக்கான அடிப்படை | முழு எண்ணாக | நீண்ட |
---|---|---|
அடிப்படை | டேட்டாடைப் எண்ணானது 32-பிட்கள் கொண்டது. | தரவு வகை நீளம் 64 பிட்கள் கொண்டது. |
பைட்டுகள் | பைட்டுகளில் எண்ணப்பட்டால், எண்ணாக 4 பைட்டுகள் இருக்கும். | பைட்டுகளில் எண்ணப்பட்டால், நீளம் 8 பைட்டுகள். |
சரகம் | ஜாவாவில் முழு எண்ணின் வரம்பு –2,147,483,648 முதல் 2,147,483,647 வரை. | ஜாவாவில் வகை நீளமானது –9,223,372,036,854,775,808 முதல் 9,223,372,036,854,775,807 வரை. |
முக்கிய | முழு எண்ணின் மாறுபாட்டை அறிவிக்க பயன்படுத்தப்படும் முக்கிய சொல் "int". | நீண்ட வகை மாறியை அறிவிக்க பயன்படுத்தப்படும் முக்கிய சொல் "நீண்டது". |
நினைவு | ஒரு முழு எண்ணை சேமிக்க தேவையான நினைவகம் நீளத்துடன் ஒப்பிடும்போது குறைவாக இருக்கும். | எண்ணுடன் ஒப்பிடும்போது நீண்ட மாறியைச் சேமிக்க தேவையான நினைவகம் பெரியது. |
முழு எண்ணின் வரையறை
தரவு வகை எண்ணாக பொதுவாகப் பயன்படுத்தப்படும் தரவு வகையாகும், அதில் ஒரு முழு மதிப்பைக் கொண்டுள்ளது. ஒரு முழு மாறியை வைத்திருக்கக்கூடிய மதிப்பு மிகக் குறுகியதல்ல, மிக நீண்டதல்ல. பொதுவாக, ஒரு முழு எண்ணின் மதிப்பு லூப்பைக் கட்டுப்படுத்தும் ஒரு லூப் மாறியாகப் பயன்படுத்தப்படுகிறது, அல்லது இது ஒரு வரிசையின் குறியீட்டு மாறியாகப் பயன்படுத்தப்படுகிறது. தரவு வகை எண்ணுடன் ஒப்பிடும்போது தரவு வகை பைட் மற்றும் குறுகிய குறுகிய வரம்பைக் கொண்டிருக்கின்றன, ஆனால் ஒரு முழு எண்ணின் மாறியின் மதிப்பு குறுகிய வரம்பில் இருந்தாலும் அவை எண்ணை மாற்ற முடியாது. இதன் பின்னணியில் உள்ள காரணம் என்னவென்றால், நாம் தரவு வகை பைட் மற்றும் ஒரு வெளிப்பாட்டில் குறுகியதாக பயன்படுத்தும் போது, அந்த வெளிப்பாட்டை மதிப்பிடும்போது தரவு வகை பைட் மற்றும் குறுகிய ஆகியவை கம்பைலரால் எண்ணாக உயர்த்தப்படுகின்றன. எனவே, இதிலிருந்து, ஒரு முழு எண் தேவைப்படும் இடங்களில் எண்ணைப் பயன்படுத்துவது நல்லது என்று கூறலாம்.
இன்ட் டேட்டாடைப்பின் பயன்பாட்டைப் பார்ப்போம்.
பைட் அ = 70; பைட் பி = 80; int c = a * b; // பிழை இல்லை. பைட் d = a + 10; // தொகுக்கும் நேர பிழை.
மேலே உள்ள குறியீட்டில் நீங்கள் கவனிக்க முடியும் என, பைட் மாறிகள் a மற்றும் b மதிப்பு 70 மற்றும் 80 ஆகியவற்றைக் கொண்டிருக்கின்றன, இது செல்லுபடியாகும் பைட்-வரம்பு மதிப்பு. ஆனால், ஒரு * b இன் இடைநிலை முடிவு; பைட்டின் வரம்பை மீறுகிறது. எனவே, கம்பைலர் தானாகவே பைட், குறுகிய மற்றும் கரி மாறிகள் எண்ணை தட்டச்சு செய்ய ஊக்குவிக்கிறது, அவை ஒரு வெளிப்பாட்டில் பயன்படுத்தப்பட்டால். இப்போது, ஒரு * b இன் முடிவு ஒரு முழு எண்ணாக மாற்றப்படுவதை நீங்கள் காணலாம், இது எந்த பிழையும் ஏற்படுத்தாது மற்றும் சுமூகமாக தொகுக்கிறது, ஏனெனில் a மற்றும் b மாறிகள் வகை எண்ணாக ஊக்குவிக்கப்படுகின்றன மற்றும் வகை int க்கு வகை int இன் ஒதுக்கீடு ' t பிழையை ஏற்படுத்தும்.
குறியீட்டின் கடைசி வரியில், நீங்கள் ஒரு வெளிப்பாட்டைக் காணலாம், அங்கு மதிப்பு 10 ஒரு பைட் மாறி ‘a’ இல் சேர்க்கப்படுகிறது, அதன் முடிவு இன்னும் பைட்டின் வரம்பை மீறவில்லை. ஆனால், பைட் மாறி ‘டி’ க்கு “a + 10” வெளிப்பாட்டின் இடைநிலை முடிவின் ஒதுக்கீடு, தொகுக்கும் நேர பிழையை ஏற்படுத்துகிறது, ஏனெனில் வெளிப்பாடு மதிப்பீட்டு பைட் மாறி ‘அ’ வகை எண்ணாக உயர்த்தப்படுகிறது. பைட் தட்டச்சு செய்ய வகை எண்ணை ஒதுக்குவது அனுமதிக்கப்படாது. எனவே, இது தொகுக்கும் நேர பிழையை ஏற்படுத்துகிறது.
நீண்ட வகை வரையறை
பைட், குறுகிய மற்றும் முழு வகைகளுடன் ஒப்பிடும்போது தரவு வகை நீளமானது மிகப்பெரிய வரம்பையும் அகலத்தையும் கொண்டுள்ளது. ஜாவாவில், நீளமான வகை 64-பிட் கையொப்பமிடப்பட்ட முழு எண் வகை. விரும்பிய மதிப்பை வைத்திருக்க int வகை பெரியதாக இல்லாத இடத்தில் நீண்ட வகை பயன்படுத்தப்படுகிறது. நீளத்தின் வரம்பு –9,223,372,036,854,775,808 முதல் 9,223,372,036,854,775,807 வரை இது மிகப் பெரியது, பெரிய முழு எண்கள் போன்ற பெரிய மதிப்புகளை வைத்திருக்க. கீழேயுள்ள எடுத்துக்காட்டுடன் நீண்ட வகையை நாம் புரிந்து கொள்ள முடியும்.
வகுப்பு எடை {பொது நிலையான வெற்றிட மெயின் (சரம் ஆர்க்ஸ்) {int உருப்படி; int wt_per_item; நீண்ட கிராம்; நீண்ட பெட்டி; உருப்படி = 10000000; // எண் உருப்படிகளைக் குறிப்பிடவும் wt_per_item = 10000; // ஒரு பொருளின் எடையை கிலோ கிராம் குறிப்பிடவும் = wt_item * 1000; // எடையை கிராம் பெட்டியாக மாற்றவும் பெட்டி = உருப்படி * கிராம்; // கிராம்ஸில் பெட்டியின் எடையை கணக்கிடுங்கள் System.out.ln ("உருப்படியின் எண்ணிக்கை" + உருப்படி); System.out.ln ("ஒரு பொருளுக்கு எடை" + wt_per_item + "கிலோ"); System.out.ln ("கிராம் பெட்டியின் எடை" + பெட்டி + "கிலோ"); Item item உருப்படியின் எண்ணிக்கை 10000000 ஒரு பொருளின் எடை 10000 கிலோ கிராம் பெட்டியின் எடை 100000000000000 கிலோ
மேலே உள்ள குறியீட்டில் வெளியீட்டைக் கவனியுங்கள்; இதன் விளைவாக 10000000 உருப்படிகளைக் கொண்ட பெட்டியைக் கொண்ட முழு பெட்டியின் எடையுடன் கணக்கிடப்படுகிறது, அதில் ஒரு பொருளுக்கு 10000 கிலோ எடையுள்ளதாக இருக்கும். கிராம் பெட்டியின் எடைக்கான கணக்கிடப்பட்ட மதிப்பு, ஒரு முழு மாறியால் வைத்திருக்க முடியாது. எனவே, சில நேரங்களில் பெரிய மதிப்புகள் கணக்கிடப்படும்போது அல்லது வைத்திருக்கும்போது நீண்ட வகையைப் பயன்படுத்துவது அவசியமாகிறது.
- முழு எண்ணிற்கும் நீளத்திற்கும் இடையிலான அடிப்படை வேறுபாடு அவற்றின் அகலத்தில் int 32 பிட், மற்றும் நீளம் 64 பிட்கள் ஆகும்.
- பிட்டுகளுக்கு பதிலாக பைட்டுகளில் எண்ணும்போது எண்ணாக மற்றும் நீளமாக இருக்கும் வகைகள் இன்ட் வகை 4 பைட்டுகள் மற்றும் இன்ட் வகை என்றால் 8 பைட்டுகள் என இரண்டு மடங்கு நீளமாக இருக்கும்.
- ஜாவாவில், வகை எண்ணின் வரம்பு –2,147,483,648 முதல் 2,147,483,647 வரை, வகை நீளத்தின் வரம்பு –9,223,372,036,854,775,808 முதல் 9,223,372,036,854,775,807 வரை ஆகும், இது வகை எண்ணை விட மிக அதிகம்.
- எண்ணின் வகையின் மாறியை அறிவிக்க பயன்படுத்தப்படும் முக்கிய சொல் “int”. மறுபுறம், வகை நீளத்தை அறிவிக்க பயன்படுத்தப்படும் முக்கிய சொல் “நீண்டது”.
- பொதுவாக, வகை எண்ணின் மதிப்பை வைத்திருக்க தேவையான நினைவகம் நீளத்துடன் ஒப்பிடும்போது குறைவாக இருக்கும்.
முடிவுரை:
நடுத்தர வரம்பு மதிப்பு தேவைப்பட்டால் குறியீட்டை எழுதும் போது நீங்கள் வகை எண்ணைப் பயன்படுத்தலாம், ஆனால் எந்தவொரு வெளிப்பாட்டினாலும் உற்பத்தி செய்யப்படும் வெளியீடு பெரிதாக இருக்கும், அல்லது பெரிய மதிப்புகள் கணக்கீட்டிற்குப் பயன்படுத்தப்படும்போது நீண்ட வகை மாறி வைத்திருக்க வேண்டும் மதிப்புகள்.