1. ऑक्टल एन्कोडिंग

एन्कोडिंगबद्दल बोलताना... तुम्हाला माहिती आहेच की, दैनंदिन जीवनात आपण दशांश चिन्ह वापरतो : आपल्या सर्व संख्या 10 चिन्हे वापरून दर्शविल्या जातात: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. तेथे 10 आहेत. अंक, म्हणून प्रणालीला दशांश म्हणतात.

परंतु प्रोग्रामर हे मोठ्या काळातील शोधक आहेत. ते ताबडतोब एन्कोडिंगसह आले जे भिन्न चिन्हे वापरतात. उदाहरणार्थ, 16, 8 आणि 2.

8 चिन्हे वापरणारे पर्यायी एन्कोडिंग सर्वात सोपा आहे: फक्त 8 आणि 9 टाका आणि तुम्हाला ऑक्टल एन्कोडिंग (ऑक्टल अंक प्रणाली ) मिळेल.

आणि, होय, अंकीय अक्षरे निर्दिष्ट करण्यासाठी तुम्ही ऑक्टल प्रणाली वापरू शकता. जर, नक्कीच, आपल्याला खरोखर आवश्यक आहे. हे वाटते त्यापेक्षा सोपे आहे. तुम्हाला फक्त नंबरच्या आधी 0 हा अंक लिहावा लागेल.

दुस-या शब्दात, Java 0 ने सुरू होणारे कोणतेही पूर्णांक अष्टकीय मूल्य मानते.

उदाहरणे:

कोड नोट्स
int x = 015;
x १३:१*८+५ आहे
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 लिहू शकत नाही.



2. बायनरी एन्कोडिंग

बायनरी एन्कोडिंग आणखी मनोरंजक आहे. जर ऑक्टलमध्ये फक्त 0-7 अंक असतील, तर बायनरीमध्ये फक्त 0 आणि 1 आहेत. हे एन्कोडिंग का आवश्यक आहे?

याचा संगणकाच्या अंतर्गत संरचनेशी संबंध आहे. संगणकातील सर्व काही विजेवर चालते आणि जसे घडते तसे, विजेचा वापर करून काहीतरी साठवण्याचा आणि प्रसारित करण्याचा सर्वात कार्यक्षम मार्ग म्हणजे दोन अवस्था वापरणे: एकतर वायरमध्ये वीज नाही (शून्य) आणि वीज आहे (एक).

बायनरी अंक प्रणालीच्या लोकप्रियतेचे हे मूळ आहे.

तत्त्वतः, जावामध्ये ती फार वेळा वापरली जात नाही: जावा ही उच्च-स्तरीय भाषा मानली जाते, ती ज्या हार्डवेअरवर चालते त्यापासून पूर्णपणे अमूर्त आहे. खरंच, संगणकामध्ये डेटा संचयित करण्यासाठी आणि त्यावर प्रक्रिया करण्यासाठी कोणते स्वरूप वापरले जाते याची आपल्याला खरोखर काळजी आहे का?

परंतु गेल्या दशकांमध्ये, प्रोग्रामरना बायनरी एन्कोडिंग (आणि त्यावर आधारित इतर एन्कोडिंग) आवडतात. परिणामी, Java मध्ये ऑपरेटर आहेत जे इनपुट म्हणून बायनरी संख्या घेतात. आणि फ्लोटिंग-पॉइंट संख्यांची अचूकता त्यांच्या बायनरी प्रतिनिधित्वावर अवलंबून असते.

मुळात, न कळण्यापेक्षा या एन्कोडिंगबद्दल जाणून घेणे आपल्यासाठी चांगले आहे.

आणि ऑक्टल एन्कोडिंगच्या बाबतीत, Java कडे बायनरी प्रणाली वापरून अक्षरे एन्कोड करण्याचा एक मार्ग आहे. म्हणजेच, अक्षरांमध्ये फक्त 0 आणि 1s असतात. जावा कंपायलरला हे समजण्यासाठी की कोडमध्ये शून्य आणि एक असलेल्या दशांश संख्येऐवजी बायनरीमध्ये सांख्यिकीय शब्दशः एन्कोड केलेले आहे, सर्व बायनरी लिटरल प्रिफिक्स 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; 
х 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 हे बायनरी एन्कोडिंगमध्ये वापरल्या जाणार्‍या चिन्हांपैकी एक नाही.


3. हेक्साडेसिमल एन्कोडिंग

ऑक्टल आणि बायनरी एन्कोडिंग व्यतिरिक्त, अक्षरे हेक्साडेसिमलमध्ये देखील लिहिली जाऊ शकतात. हे एक अतिशय लोकप्रिय एन्कोडिंग आहे.

याचे कारण असे की जरी बायनरी नोटेशन हे संख्या प्रत्यक्षात कसे संग्रहित केले जातात याच्या शक्य तितक्या जवळ असले तरी, अशा संख्येसह प्रभावीपणे कार्य करणे मानवांसाठी खूप कठीण आहे: बायनरीमध्ये, एक दशलक्ष संख्येमध्ये 7 नव्हे तर 20 अंक असतात.

म्हणूनच प्रोग्रामर हेक्साडेसिमल सिस्टमसह आले. शेवटी, 16 हे 2 4थ्या पॉवरवर वाढवले ​​जाते, त्यामुळे 4 बिट्स एका हेक्साडेसिमल अंकाशी जुळतात. ढोबळपणे बोलायचे झाल्यास, प्रत्येक 4 बिट्स आता एक हेक्साडेसिमल अंक म्हणून लिहिता येतात.

हेक्साडेसिमल एन्कोडिंगचे स्वतःचे अद्वितीय उपसर्ग देखील आहे: 0x . उदाहरणे:

दशांश संख्या बायनरी नोटेशन हेक्साडेसिमल नोटेशन
१७ 0b 0001 0001 0x 1 1
0b 0010 1 00 1 0x 2 9
८५ 0b 0101 0101 0x 5 5
२५६ 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
0x 9 0b 0000 1001
0x 0b 0000 1010 10
0x B 0b 0000 1011 11
0x 0b 0000 1100 12
0x डी 0b 0000 1101 13
0x 0b 0000 1110 14
0x F 0b 0000 1111 १५
0x 1 फॅ 0b 0001 1111 ३१
0x A F 0b 1010 1111 १७५
0x F F 0b 1111 1111 २५५
0x F F F 0b 1111 1111 1111 ४०९५


4. हेक्साडेसिमलमधून संख्या कशी रूपांतरित करायची

हेक्साडेसिमल ते दशांश संख्येत रूपांतर करणे खूप सोपे आहे. समजा तुमच्याकडे 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 वाढवल्यास, आम्हाला मिळते:

१० * ४०९६ + १५ * २५६ + १२ * १६ + १५

आम्ही सर्वकाही एकत्रित करतो आणि मिळवतो:

४५००७

हा नंबर मेमरीमध्ये कसा संग्रहित केला जातो हे तुम्हाला माहिती आहे:

0x A F C F

पण आता त्याचे रूपांतर बायनरीमध्ये करू. बायनरीमध्ये ते असेल:

0b 1010 1111 1100 1111

चार बिट्सचा प्रत्येक संच अगदी एका हेक्साडेसिमल वर्णाशी संबंधित आहे. ते सुपर सोयीस्कर आहे. कोणत्याही गुणाकार किंवा घातांकाशिवाय."