"திறமையான குறியீட்டை விட சிறந்தது எதுவுமில்லை, அமிகோ! பழைய ரோபோவை நம்புங்கள்."

"நீங்கள் உளவாளிகள் பயன்படுத்தும் சைபர்களைப் பற்றி பேசுகிறீர்களா?"

"நிச்சயமாக இல்லை. நான் ஜீரணிக்கக்கூடிய வடிவத்தில் தகவலை வழங்குவதைப் பற்றி பேசுகிறேன். எண் அமைப்புகளைப் பற்றி. அன்றாட வாழ்க்கையில் பெரும்பாலான மக்கள் தசம முறையைப் பயன்படுத்துகிறார்கள் என்பதை நீங்கள் அறிவீர்கள். இது ஒவ்வொரு எண்ணையும் குறிக்க 10 குறியீடுகளைப் பயன்படுத்துகிறது: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 10 எண்கள் உள்ளன, எனவே அமைப்பு தசமம் என்று அழைக்கப்படுகிறது."

"அது பத்து விரல்களைக் கொண்ட மனிதர்களுக்கு வசதியாக இருந்தது. ஆனால் புரோகிராமர்கள் பெரிய கால கண்டுபிடிப்பாளர்கள். அவர்கள் உடனடியாக வேறு எண்களின் எண்களைப் பயன்படுத்தும் குறியாக்கங்களைக் கொண்டு வந்தனர். உதாரணமாக, 2, 8, 16, அல்லது 64 இலக்கங்கள். அவர்கள் இதைச் செய்தார்கள். 'ஒரு சிக்னல் உள்ளது / சிக்னல் இல்லை' என்பதை நம்பியிருக்கும் கணினிகளுக்கு இதை வசதியாக்குங்கள்."

“அட, அவங்களுக்குப் பொதுவானது என்னன்னு நான் பார்க்கிறேன்... இந்த அமைப்புகள் எல்லாம் இருவரின் அதிகாரங்களை அடிப்படையாகக் கொண்டவை.

ஆக்டல் குறியாக்கம்

"நல்ல அவதானிப்பு. 8 இலக்கங்களை உள்ளடக்கிய ஒரு குறியாக்கத்துடன் தொடங்குவோம். மனிதர்கள் இதை எளிதாகக் காணலாம்: 8 மற்றும் 9 எண்களை விடுங்கள் மற்றும் - பூம் - உங்களிடம் எண்கோடிங் (எண் அமைப்பு) உள்ளது. உங்களுக்கு சமீபத்தில் எழுத்துக்குறிகள் பற்றி கூறப்பட்டது, சரி . ?"

"ஆம், நான் இருந்தேன்."

"சரி, ஆச்சர்யம்! எண்கோடிட்ட எண்களை எண்முறைக் குறியீடாக அமைக்கலாம். நிச்சயமாக, உங்களுக்கு உண்மையிலேயே தேவைப்பட்டால். இது ஒலிப்பதை விட எளிதானது. முழு எண்ணின் முன் 0 ஐ மட்டும் வைக்கவும்.

"எனவே ஒரு எண் எழுத்து பூஜ்ஜியத்தில் தொடங்கினால், அது எண்கணிதம் என்று அர்த்தமா ?"

“ஆமாம், ஜாவா அதை ஆக்டலாக நடத்தும்.

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்புகள்
int x = 015; 
x என்பது 13: 1*8+5
int x = 025; 
x என்பது 21: 2*8+5
int x = 0123; 
x என்பது 83: 1*64+2*8+3 == 1*8 2 +2*8 1 +3*8 0
int x = 078;
இது தொகுக்கப்படாது: 8 என்பது எண்கோடிங்கில் பயன்படுத்தப்படும் குறியீடுகளில் ஒன்றல்ல.

"உங்கள் குறியீட்டில் நீங்கள் எண்ம எண்களை எழுத வேண்டிய அவசியம் இல்லை, ஆனால் அவை என்ன என்பதை நீங்கள் அறிந்து கொள்ள வேண்டும். "மற்றவர்கள் எழுதிய குறியீட்டை நீங்கள் படிக்க வேண்டும். மேலே குறிப்பிட்டுள்ளபடி, புரோகிராமர்கள் பெரிய கண்டுபிடிப்பாளர்கள்.

சரி, ஒவ்வொரு எண்ணுக்கும் முன்னால் 0 என்று எழுத முடியாது என்பதை நினைவில் கொள்ளுங்கள்."

"ஆனால் அது எண்மமாக இருக்க வேண்டும் என்று நான் நினைத்தால், என்னால் முடியுமா?"

"ஆம்.

பைனரி குறியாக்கம்

"உங்களுக்கு இன்னும் புரியவில்லையென்றாலும், பைனரி என்கோடிங் உங்கள் தாய்மொழி. அதை உங்களுக்கு நினைவூட்டுகிறேன். ஆக்டலில் 0-7 இலக்கங்கள் மட்டுமே இருந்தால், பைனரியில் 0 மற்றும் 1 மட்டுமே இருக்கும்."

"ஏன் இந்த குறியாக்கம் அவசியம்?"

"நான் மேலே குறிப்பிட்டுள்ளபடி, இது ஒரு கணினியின் உள் அமைப்புடன் தொடர்புடைய அனைத்தையும் கொண்டுள்ளது. ஒரு கணினியில் உள்ள அனைத்தும் மின்சாரத்தில் இயங்குகிறது, அது நிகழும்போது, ​​மின்சாரத்தைப் பயன்படுத்தி எதையாவது சேமித்து அனுப்புவதற்கான மிகச் சிறந்த வழி இரண்டு நிலைகளைப் பயன்படுத்துவதாகும்: கம்பியில் மின்சாரம் இல்லை (பூஜ்ஜியம்) மற்றும் மின்சாரம் (ஒன்று) உள்ளது."

"அதனால்தான் இது மிகவும் பிரபலமானது... ம்ம்ம், இந்த மொழி எனக்கு நிஜமாகவே ஞாபகம் வர ஆரம்பித்துவிட்டது போலிருக்கிறது!"

"எல்லா ரோபோக்களும் அதை சரியாகப் புரிந்துகொள்கின்றன. ஜாவாவில் இது அடிக்கடி பயன்படுத்தப்படுவதில்லை. ஜாவா ஒரு உயர்-நிலை மொழியாகக் கருதப்படுகிறது, அது இயங்கும் வன்பொருளிலிருந்து முற்றிலும் சுருக்கப்பட்டது. உண்மையில், தரவைச் சேமிக்கவும் செயலாக்கவும் எந்த வடிவத்தில் பயன்படுத்தப்படுகிறது என்பதை நீங்கள் உண்மையிலேயே கவனிக்கிறீர்களா? கணினிக்குள்?

"ஆனால் கடந்த தசாப்தங்களாக, புரோகிராமர்கள் பைனரி குறியாக்கத்தை விரும்புகின்றனர் (மற்றும் அதன் அடிப்படையிலான பிற குறியாக்கங்கள்). இதன் விளைவாக, பைனரி எண்களை உள்ளீடுகளாக எடுத்துக்கொள்ளும் ஆபரேட்டர்களை ஜாவா கொண்டுள்ளது. மேலும் மிதக்கும் புள்ளி எண்களின் துல்லியம் அவற்றின் பைனரியைப் பொறுத்தது. பிரதிநிதித்துவம்.

"சுருக்கமாக, இந்த குறியாக்கத்தைப் பற்றி அறியாமல் இருப்பதை விட நீங்கள் தெரிந்து கொள்வது நல்லது."

"சரி. மேலும் ஆக்டல் குறியாக்கத்தைப் போலவே, பைனரி சிஸ்டத்தைப் பயன்படுத்தி எழுத்துக்குறிகளை குறியாக்க ஜாவாவுக்கு ஒரு வழி உள்ளது."

"எனவே அவை 0கள் மற்றும் 1 வினாக்களால் மட்டுமே உருவாக்கப்படும்?"

"சரியாக. குறியீடு பூஜ்ஜியங்கள் மற்றும் ஒன்றைக் கொண்ட ஒரு தசம எண்ணைக் காட்டிலும் பைனரியில் குறியிடப்பட்ட ஒரு எண் எழுத்துக்களைக் கொண்டுள்ளது என்பதை ஜாவா கம்பைலர் புரிந்துகொள்வதற்கு, அனைத்து பைனரி எழுத்துகளும் 0b ('b) முன்னொட்டுடன் தொடங்குவது வழக்கம். 'பைனரி என்ற வார்த்தையிலிருந்து வந்தது).

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்புகள்
int x = 0b100; 
х என்பது 4: 1*4+0*2+0
int x = 0b1111; 
х என்பது 15: 1*8+1*4+1*2+1
int x = 0b1111000111; 
x என்பது 967: 1*2 9 +1*2 8 +1*2 7 +1*2 6 +0*2 5 +0*2 4 +0* 2 3 +1*2 2 +1*2+1;
int x = 0b12000;
இது தொகுக்கப்படாது: 2 என்பது பைனரி குறியாக்கத்தில் பயன்படுத்தப்படும் குறியீடுகளில் ஒன்றல்ல.

ஹெக்ஸாடெசிமல் குறியாக்கம்

"நான்காவது சக்திக்கு இரண்டு என்ன?"

"பதினாறு. என்னைப் போல வந்த ஒரு ரோபோவிடம் கேட்க சரியான கேள்வியை நீங்கள் கண்டுபிடித்தீர்கள்!"

"நீங்கள் வெகுதூரம் வந்துவிட்டதாகத் தெரிகிறது. எப்படியும் பதினாறு. ஆக்டல் மற்றும் பைனரி குறியாக்கங்களைத் தவிர, ஹெக்ஸாடெசிமலில் எழுத்துக்களையும் எழுதலாம். இது மிகவும் பிரபலமான குறியாக்கம்.

"ஏனென்றால், எண்கள் உண்மையில் எவ்வாறு சேமிக்கப்படுகின்றன என்பதற்கு பைனரி குறியீடு முடிந்தவரை நெருக்கமாக இருந்தாலும், மனிதர்கள் அத்தகைய எண்களுடன் திறம்பட செயல்படுவது மிகவும் கடினம்: பைனரியில், எண் ஒரு மில்லியன் 20 இலக்கங்கள், 7 அல்ல.

"அதனால்தான் புரோகிராமர்கள் ஹெக்ஸாடெசிமல் அமைப்பைக் கொண்டு வந்தனர். எல்லாவற்றிற்கும் மேலாக, நீங்கள் சரியாகக் குறிப்பிட்டுள்ளபடி, 16 என்பது 4 வது சக்தியாக உயர்த்தப்பட்டது, எனவே சரியாக 4 பிட்கள் ஒரு ஹெக்ஸாடெசிமல் இலக்கத்துடன் ஒத்திருக்கும்.

"எனவே ஒவ்வொரு 4 பிட்களையும் இப்போது ஒரு ஹெக்ஸாடெசிமல் இலக்கத்தில் எழுதலாம்."

"சரி. ஹெக்ஸாடெசிமல் குறியாக்கமும் அதன் தனித்துவமான முன்னொட்டைக் கொண்டுள்ளது: 0x . எடுத்துக்காட்டுகள்:

தசம எண் பைனரி குறியீடு பதின்ம எண்முறை
17 0b 0001 0001 0x 1 1
4 1 0b 0010 1 00 1 0x 2 9
85 0b 0101 0101 0x 5 5
256 0b 1 0000 0000 0x 1 0 0

"சரி, ஆக்டல் சிஸ்டத்தை எப்படிப் பெற்றோம் என்பது தெளிவாகத் தெரிகிறது: 8 மற்றும் 9 எண்களை எறிந்தோம். ஆனால் ஹெக்ஸாடெசிமல் சிஸ்டத்தில் விடுபட்ட 6 இலக்கங்களை எங்கிருந்து பெறுவது? நான் அவற்றைப் பார்க்க விரும்புகிறேன்!"

"இது எல்லாம் நேரடியானது. ஆங்கில எழுத்துக்களின் முதல் 6 எழுத்துக்கள் விடுபட்ட 6 இலக்கங்களாக எடுத்துக் கொள்ளப்பட்டன: A (10), B (11), C (12), D (13), E (14), F (15) .

எடுத்துக்காட்டுகள்:

பதின்ம எண்முறை பைனரி குறியீடு தசம எண்
0x 1 0b 0000 0001 1
0x 9 0b 0000 1001 9
0x 0b 0000 1010 10
0x b 0b 0000 1011 11
0x C 0b 0000 1100 12
0x டி 0b 0000 1101 13
0x 0b 0000 1110 14
0x F 0b 0000 1111 15
0x 1 F 0b 0001 1111 31
0x எஃப் 0b 1010 1111 175
0x F F 0b 1111 1111 255
0x F F F 0b 1111 1111 1111 4095

"ஹெக்ஸாடெசிமல் எண்ணை எப்படி தசமமாக மாற்றுவது?"

"இது மிகவும் எளிமையானது. உங்களிடம் 0 x A F C F எண் இருப்பதாக வைத்துக்கொள்வோம் . அது தசமத்தில் எவ்வளவு? முதலில், எங்களிடம் ஒரு நிலை எண் அமைப்பு உள்ளது, அதாவது ஒட்டுமொத்த எண்ணுக்கு ஒவ்வொரு இலக்கத்தின் பங்களிப்பும் ஒரு காரணியால் அதிகரிக்கிறது. 16 நாம் வலமிருந்து இடமாக நகரும்போது:

A * 16 3 + F * 16 2 + C * 16 1 + F

A சின்னம் எண் 10 க்கு ஒத்திருக்கிறது, C என்ற எழுத்து நமக்கு 12 எண் இருப்பதாகவும், F எழுத்து பதினைந்தைக் குறிக்கிறது. நாங்கள் பெறுகிறோம்:

10 * 16 3 + 15 * 16 2 + 12 * 16 1 + 15

இலக்கங்களுடன் தொடர்புடைய பல்வேறு சக்திகளுக்கு 16 ஐ உயர்த்தினால், நாம் பெறுகிறோம்:

10 * 4096 + 15 * 256 + 12 * 16 + 15

நாங்கள் எல்லாவற்றையும் தொகுத்து பெறுகிறோம்:

45007

"45007 நினைவகத்தில் எவ்வாறு சேமிக்கப்படுகிறது என்பதை இப்போது நீங்கள் அறிவீர்கள்."

"ஆம், நான் செய்கிறேன். இது 0x A F C F "

"இப்போது அதை பைனரியாக மாற்றுவோம். பைனரியில் இது:

0b 1010 1111 1100 1111

"ஒவ்வொரு நான்கு பிட்களின் தொகுப்பும் சரியாக ஒரு பதினாறுமாத எழுத்துக்கு ஒத்திருக்கிறது. அது மிகவும் வசதியானது. எந்தப் பெருக்கல் அல்லது அதிவேகமும் இல்லாமல்."