
"हाय, अमिगो!"
"हाय, बिलाबो!"
"मला तुम्हाला वेगवेगळ्या नंबरिंग सिस्टमबद्दल थोडेसे सांगायचे आहे."
"तुम्ही आधीच ऐकले आहे की लोक दशांश प्रणाली वापरतात. या प्रणालीची मुख्य तथ्ये येथे आहेत:
1) संख्या लिहिण्यासाठी 10 अंक वापरले जातात: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
2) 543 क्रमांकाचा अर्थ 5 शेकडो + 4 दहापट + 3 आहेत.
"हे 5*100 + 4*10 + 3*1 लिहिण्यासारखे आहे, जे 5*10 2 + 4*10 1 + 3*10 0 असे लिहिले जाऊ शकते .
लक्षात घ्या की हजारो, शेकडो, दहापट आणि एक या संख्या 10 च्या शक्ती आहेत.
1) एक 10 ते शून्य पॉवर आहे.
2) दहा म्हणजे 10 ते पहिल्या घात.
3) शंभर म्हणजे 10 ते दुसऱ्या घात.
4) एक हजार म्हणजे 10 तिसर्या घात इ.
"हो. समजले."
"परंतु आता कल्पना करा की आपल्याकडे फक्त 8 अंक आहेत. मग आपल्याकडे अष्टक प्रणाली आहे. त्याची मुख्य तथ्ये येथे आहेत:"
1) संख्या लिहिण्यासाठी 8 अंक वापरले जातात: 0, 1, 2, 3, 4, 5, 6, 7.
2) संख्या 543 8 म्हणजे 5*8 2 +4*8 1 +3*8 0 . दुसऱ्या शब्दांत, ते 5*64 + 4*8 + 3*1 = 320+32+3 = 320+32+3=355 10 आहे
संख्या दर्शवण्यासाठी किती अंक वापरले जातात हे सूचित करण्यासाठी मी सबस्क्रिप्ट म्हणून 8 आणि 10 लिहिले.
"मला वाटते की मला ते मिळाले आहे. मला वाटते की मी ऑक्टल सिस्टीममधील संख्या दशांशमध्ये रूपांतरित करू शकेन. परंतु मी कदाचित त्याउलट जाऊ शकत नाही."
"हे इतके अवघड नाही. कल्पना करा की तुम्हाला वाळूचा ढीग हलवण्यासाठी अनेक ट्रक वापरावे लागतील. तुमच्याकडे डंप ट्रक, सामान्य ट्रक आणि खूप छोटे ट्रक आहेत. पण ट्रक भरले नाहीत तर ते जाऊ शकत नाहीत."
"तुम्ही ते कसे कराल?"
"प्रथम, मी डंप ट्रक भरेन, कारण ते सर्वात मोठे आहेत. नंतर, जेव्हा मी पाहिले की ट्रकमध्ये भरण्यासाठी पुरेशी वाळू नाही, तेव्हा मी लहान वाहनांकडे जाईन. आणि नंतर त्याहूनही लहान."
"येथे प्रत्यक्षात अगदी सारखेच आहे. चला 355 10 क्रमांकाचे रूपांतर अष्टकात करण्याचा प्रयत्न करूया."
"प्रथम, आपण त्याला 64 (8 2 ) ने भागतो आणि 35 च्या उरलेल्या भागासह 5 मिळवतो. याचा अर्थ आपल्या संख्येचा पहिला अंक 5 आहे. नंतर आपण उर्वरित भाग 8 (8 1 ) ने भागतो आणि उर्वरित 4 मिळवतो. 3 चा. अशा प्रकारे, आम्हाला 543 8 क्रमांक मिळतो ."
"तसे, तुम्ही दुसऱ्या दिशेने देखील जाऊ शकता. सर्व केल्यानंतर, 543 8 == 5*64+4*8+3 == ((5)*8+4)*8+3. आमचे अष्टक "दस " आणि "शेकडो" ला 8 ने भागले पाहिजे. म्हणून, 8 ने भागाकाराचा उरलेला भाग हा आपला अष्टांक असेल."
प्रथम, 355 ला 8 ने भागू या. 3 च्या उरलेल्या भागासह आपल्याला 44 मिळतील. म्हणजेच 355=44*8+3. आणि 44 ला 5*8+4 असे दाखवता येईल. अशा प्रकारे, 355= (5*8+) 4)*8+3; येथे आमचे अंक आहेत: 5, 4, 3. आम्ही शोधत असलेली संख्या 543 8 आहे ."
"मला वाटते की मला ते समजले आहे, परंतु सर्व काही समजून घेण्यासाठी मला थोडा सराव करावा लागेल."
"प्रोग्रामिंगमध्ये अनेकदा वेगवेगळ्या बेससह संख्या वापरणे समाविष्ट असते (म्हणजे क्रमांकन प्रणालीमध्ये वापरल्या जाणार्या अंकांची संख्या). सर्वात लोकप्रिय म्हणजे 2, 8, 10, 16 आणि 64."
"पण हे आवश्यक का आहे? आम्हाला 2, 8, 16, किंवा 64 अंकांनी दर्शविलेल्या संख्यांची गरज का आहे?"
"प्रोसेसर आंतरिकरित्या कसे कार्य करतो याबद्दल आहे. अगदी सोप्या भाषेत, जर तारेमधून विद्युतप्रवाह वाहत असेल, तर आम्ही म्हणतो की त्याचे मूल्य 1 आहे; जर प्रवाह नसेल तर त्याचे मूल्य 0 आहे. सर्व संख्या मेमरी सेलमध्ये संग्रहित आहेत. पेशींची रचना अतिशय मूलभूत असते. आणि ते फक्त 0 किंवा 1 संचयित करू शकतात."
"परंतु अशा सरलीकरणामुळे (फक्त 0 किंवा 1) प्रोसेसर आणि मेमरीमधील घटक खूपच लहान बनवणे शक्य झाले. आधुनिक प्रोसेसर आणि मेमरी मॉड्यूल्समध्ये कोट्यवधी भिन्न घटकांचा समावेश होतो. आणि त्यांचे क्षेत्रफळ अनेकदा चौरस सेंटीमीटरपेक्षा जास्त नसते."
"अरे. आता मला कळले."
"आता आपण बायनरी संख्यांकडे वळू. इथे आपल्याकडे ऑक्टल प्रमाणेच आहे, फक्त सोपे आहे."
1) संख्या लिहिण्यासाठी 2 अंक वापरले जातात: 0, 1.
2) संख्या 101 2 म्हणजे 1*2 2 + 0*2 1 + 1*2 0 . दुसऱ्या शब्दांत, ते 1*4+0*2+1*1 =4+1=51 10 आहे
"हो. मला आठवते. एक सेल, ज्याचे मूल्य 0 किंवा 1 असू शकते, त्याला बिट म्हणतात. परंतु ती जास्त माहिती साठवू शकत नाही, म्हणून ते 8 च्या गटांमध्ये एकत्र केले जातात. या गटांना बाइट्स म्हणतात. "
"नक्कीच. बाइट हा आठ बिट्सचा समूह आहे. ते खालील मूल्ये संचयित करू शकते: 00000000, 00000001, ... 11111111. ही मूल्ये दशांश संख्या 0,1, ... 255 शी संबंधित आहेत. जे आपल्याला एकूण २५६ मूल्ये."
Java मधील सर्वात मोठा पूर्णांक कोणता आहे? किंवा त्याऐवजी त्याचा प्रकार काय आहे?
"ए लाँग. ए लाँगमध्ये 8 बाइट्स असतात. दुसऱ्या शब्दांत, 64 बिट. ते -2 63 ते 2 63 -1 पर्यंत मूल्ये साठवू शकतात .
"होय. दशांश वरून बायनरी किंवा त्याउलट संख्येचे रूपांतर कसे करायचे याला मी स्पर्श करणार नाही. अन्यथा, धडा खूप मोठा असेल."
"त्याऐवजी, हेक्साडेसिमल प्रणालीबद्दल थोडे अधिक बोलूया."
"होय, हे खूप मनोरंजक आहे. बायनरी आणि ऑक्टल सिस्टीमसाठी, आम्ही अनुक्रमे दोन आणि आठ ने सुरू होणारे अंक काढून टाकले. पण आम्ही येथे काय करू? नवीन अंक जोडा?"
"नक्की! हे बघा:"
1) संख्या लिहिण्यासाठी 16 अंक वापरले जातात: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
2) संख्या 543 16 म्हणजे 5*16 2 + 4*16 1 + 3*16 0 . दुसऱ्या शब्दांत, ते 5*256+4*16+3*1 = 1280+64+3 = 1347 10 आहे
"म्हणून, आम्ही फक्त अंक म्हणून अक्षरे जोडली? ओ_ओ"
"होय. आणि यात मोठी गोष्ट काय आहे? जेव्हा अक्षरे उत्तम प्रकारे काम करतात तेव्हा नवीन संख्या का शोधतात? ते पहा:"
हेक्साडेसिमल अंक | दशांश मूल्य |
---|---|
0 | 0 |
१ | १ |
8 | 8 |
९ | ९ |
ए | 10 |
बी | 11 |
सी | 12 |
डी | 13 |
इ | 14 |
एफ | १५ |
"मी दशांश वरून हेक्साडेसिमलमध्ये रूपांतर करण्याबद्दल देखील बोलणार नाही. परंतु येथे एक मनोरंजक तथ्य आहे. एक हेक्साडेसिमल अंक 0 ते 15 पर्यंतच्या मूल्यांसह 4 बिट्सने दर्शविला जातो. त्यामुळे, एक बाइट आठ बायनरी अंकांसह लिहिता येईल. (0 किंवा 1) किंवा दोन हेक्साडेसिमल अंक."
"हे एक उदाहरण आहे:"
दशांश संख्या | बायनरी संख्या | हेक्साडेसिमल संख्या |
---|---|---|
0 | 0000 0000 | 00 |
१ | 0000 0001 | 01 |
१५ | 0000 1111 | 0f |
16 | 0001 0000 | 10 |
३१ | 0001 1111 | 1च |
32 | 0010 0000 | 20 |
128 | 1000 0000 | 80 |
129 | 1000 0001 | ८१ |
२५५ | 1111 1111 | ff |
"हेक्साडेसिमल प्रतिनिधित्व सहजपणे बायनरी (आणि उलट) मध्ये रूपांतरित केले जाते. म्हणूनच प्रोग्रामिंगमध्ये बायनरीमध्ये (0s आणि 1s वापरून) क्वचितच संख्येचे अंतर्गत बाइट प्रतिनिधित्व दिले जाते. ते खूप लांब आणि समजणे कठीण होईल. हेक्साडेसिमल नोटेशन जास्त वाचनीय आणि संक्षिप्त आहे."
"मी सहमत आहे. मलाही ते आवडले."
"तसे, Java तुम्हाला विविध क्रमांकन प्रणालींमध्ये थेट कोडमध्ये संख्या लिहू देते:"
पाया | वेगळे वैशिष्ट्य | उदाहरणे | अवैध संख्या |
---|---|---|---|
2 | संख्येच्या सुरुवातीला 0b | 0b 00001111 | 0b 11111 2 1 |
8 | संख्येच्या सुरुवातीला 0 | 0 1234343 | 0 12 8 |
10 | काहीही नाही | ९५४५९ | 909 ए |
16 | संख्येच्या सुरुवातीला 0x | 0x 10ff | 0x 1c gh |
"उत्तम धडा. धन्यवाद, बिलाबो."
GO TO FULL VERSION