बिट्‌स आणि बाइट्‌स (अच्युत गोडबोले)

अच्युत गोडबोले achyut.godbole@gmail.com
रविवार, 16 जून 2019

आपण माहिती कॉम्प्युटरच्या "मेमरीत" साठवू शकतो. मेमरी अनेक कप्प्यांची बनलेली असते. प्रत्येक कप्प्याला "बाईट' असं म्हणतात. एका बाईटमध्ये कुठलंही एक चिन्ह (आकडा, अक्षर किंवा स्पेशल कॅरेक्‍टर) 8 बिट्‌सच्या कोड-भाषेत साठवू शकतो. प्रत्येक बिटसाठी आत अगदी लहान चुंबक असतील किंवा फ्लिप फ्लॉप किंवा "बबल मेमरी' असेल किंवा आणखीही काही हार्डवेअर असेल. एक गोष्ट मात्र नक्की: जे काही असेल त्याच्या फक्त दोनच अवस्था असतात; त्यांना आपण 0 आणि 1 असं आपल्या सोयीसाठी म्हणतो.

आपण माहिती कॉम्प्युटरच्या "मेमरीत" साठवू शकतो. मेमरी अनेक कप्प्यांची बनलेली असते. प्रत्येक कप्प्याला "बाईट' असं म्हणतात. एका बाईटमध्ये कुठलंही एक चिन्ह (आकडा, अक्षर किंवा स्पेशल कॅरेक्‍टर) 8 बिट्‌सच्या कोड-भाषेत साठवू शकतो. प्रत्येक बिटसाठी आत अगदी लहान चुंबक असतील किंवा फ्लिप फ्लॉप किंवा "बबल मेमरी' असेल किंवा आणखीही काही हार्डवेअर असेल. एक गोष्ट मात्र नक्की: जे काही असेल त्याच्या फक्त दोनच अवस्था असतात; त्यांना आपण 0 आणि 1 असं आपल्या सोयीसाठी म्हणतो.

आता याच्यापुढे काही लेख आपण "डेटा' या संदर्भातल्या वेगवेगळ्या विषयांवर चर्चा करणार आहोत. सुरवातीला हा डेटा आपण कॉम्प्युटरच्या डिस्कवर किंवा मेमरीत कसा साठवतो हे आपण जाणून घेऊ. त्यानंतर आपण बायनरी पद्धती, मल्टीमिडिया, डेटा कॉम्प्रेशन, डेटा एन्क्रिप्शन, डेटा वेअरहाऊसिंग/डेटा मायनिंग/बिग डेटा आणि त्यानंतर ब्लॉक चेन/क्रिप्टोकरन्सी अशा सात-आठ गोष्टींविषयी बोलू.
कॉम्प्युटर्सना फक्त 0 आणि 1ची बायनरी भाषाच समजते, असं आपण नेहमी ऐकतो. त्याचा नेमका अर्थ काय आहे? कॉम्प्युटरच्या मेमरीत किंवा डिस्कवर 0 आणि 1 अशा आकाराचे आकडे कोणी खरंच लिहीतं का? अर्थातच नाही. मग 0 आणि 1 यांचे अर्थ काय आहेत? या गोष्टी समजण्यासाठी आपण एक उदाहरण घेऊ.
आपण असं समजूया, की माधव आणि मालती हे दोन प्रेमी एका रस्त्यावर दोन विरुद्ध बाजूच्या घरांमध्ये राहताहेत; पण हिंदी चित्रपटांसारखंच त्यांचे आई-वडील त्यांना भेटू आणि बोलू देत नाहीयेत. मात्र, त्यांना तर संवाद साधायचाय; मग त्यांनी काय करायचं? हातवाऱ्यांची पद्धत वापरायचं म्हटलं, तरी तेही शक्‍य नाही. समजा डावा हात वर केला, तर त्याचा अर्थ "मी आता कॉलेजला जाणार आहे' आणि उजवा वर केला, तर त्याचा अर्थ "मला भूक लागली आहे' असे काहीसे संकेत ते ठरवू शकतात. मात्र, आपल्याला कुठल्याही संवादामध्ये अशी असंख्य वाक्‍यं बोलायची असतात. मग कितीही "हातवारे' किंवा "पायवारे' केले तरी ते शक्‍यच होणार नाही. मग काय करायचं?
मग माधव आणि मालती यांनी एक युक्ती केली. त्यांनी वेगवेगळ्या वाक्‍यांऐवजी प्रत्येक अक्षरासाठी एक संकेत ठरवायचं योजलं. यासाठी त्यांनी प्रत्येकी एक ठराविक तऱ्हेचा दिवा पैदा केला. त्याला जोडलेल्या तबकडीवर एक सुई होती. ती अशी होती, की ती फिरवली की त्या दिव्याच्या सर्किटमधला वीजप्रवाह बदलून त्या दिव्याच्या प्रकाशाची तीव्रता बदलायची. त्या तबकडीच्या परिघावर कॅपिटल A पासून कॅपिटल Z अशी 26 आणि लहान "a' ते "लहान z' अशी 26 अशी मिळून 52 अक्षरं, 0 ते 9 असे 10 अंक आणि ., = , + अशी काही खास चिन्हं (स्पेशल कॅरेक्‍टर्स) अशी चिन्हं लिहिली होती. आता समजा माधवला "I love you' असं मालतीला सांगायचं असेल, तर तो आपल्या दिव्याच्या तबकडीवरची सुई "I' या अक्षरावर आणेल. त्याबरोबर त्या दिव्यातून I या अक्षरासाठी ठरवून दिलेली प्रकाशाची तीव्रता बाहेर पडेल. आपण असं गृहीत धरूयास की मालतीचे डोळे खूपच चांगले आहेत आणि ती प्रकाशाच्या वेगवेगळ्या पातळ्यांमधला फरक अचूकपणे ओळखू शकते. त्यामुळे ती त्या दिव्याकडे बघून ते अक्षर "I` आहे हे ओळखेल. त्यानंतर काही काळानंतर स्पेस - (हेसुद्धा एक स्पेशल कॅरेक्‍टर आहे), त्यानंतर l , त्यानंतर एकापाठोपाठ o, v, e, पुन्हा स्पेस आणि त्यानंतर y, o, u अशी अक्षरंही अशाच तऱ्हेनं माधव तबकडीवरची सुई त्या त्या अक्षरावर किंवा चिन्हावर फिरवून प्रकाशाच्या निर्माण होणाऱ्या वेगवेगळ्या तीव्रतेचा उपयोग करून दर वेळी मालतीनं ते अक्षर बघून लिहून घेण्यासाठी थोडा वेळ थांबून मालतीकडे पाठवू शकेल. अशा तऱ्हेनं "I love you' हे माधवचं वाक्‍य मालतीकडे पोचेल. यानंतर मालतीचं माधववर खरंच प्रेम असेल, तर ती आपल्याकडच्या दिव्याच्या तबकडीवरची सुई योग्य अक्षरांवर एकापाठोपाठ फिरवून "I love you, too' असा संदेश पाठवेल; किंवा प्रेम नसेल तर "Go to hell' असा काहीतरी संदेश पाठवेल! पण काही का होईना, त्यांच्यात संवाद घडेल! ही ऍनॅलॉग पद्धतीसारखी आहे. याचं कारण यात प्रकाशाच्या तीव्रतेच्या अनेक अवस्था आहेत. फक्त दोन नाहीत.
या पद्धतीत एक मोठा प्रश्न आहे. दिवे आणि माणसांचे डोळे हे वर्षानुवर्षं अचूकपणे काम करत राहतील, असं यात गृहीत धरलंय तेच चूक आहे. शेवटी यंत्रच ती! यामुळे कालांतरानं चुकीचेच संदेश दोघांमध्ये जायचे आणि मग मंडळी लग्नानंतरच्या ऐवजी अगोदरच भांडायला लागतील! मग काय करायचं? यावर त्यांनी एक उपाय केला. दिवा आणि डोळे बरेच बिघडले, तरी कमीत कमी दिवा चालू आहे की बंद आहे, एवढं मात्र नक्कीच साधारणपणे समजेल. कारण यामध्ये दोनच अवस्था आहेत; दिवा बंद तरी आहे किंवा चालू तरी. आणि संभाषण सुटसुटीत व्हावं म्हणून मग त्या दोन प्रेमी जीवांनी या दिव्याच्या या दोन अवस्थांना अनुक्रमे 0 (बंद) आणि 1 (चालू) असं संबोधायचं ठरवलं. यालाच "बायनरी' पद्धती म्हणतात. त्यांनी दिव्याला "बिट' असंही म्हायला सुरवात केली. याचं कारण बिट हाही 0 किंवा 1 असतो. आता ती मंडळी कोड-भाषा ठरवायला बसली.

आता त्यांनी ठरवलं, की दिवा बंद (0) असेल, तर ते "A" अक्षर समजायचं आणि दिवा चालू (1) असेल, तर "B" अक्षर समजायचं. या दोन अक्षरांचं ठीक, पण मग C, D, 1 , 2 ...*, अशा उरलेल्या चिन्हांचं काय? म्हणजेच या सगळ्या चिन्हांसाठी एक दिवा किंवा बिट पुरणारच नाही. मग त्यांनी दोन दिवे घेतले. दोन दिव्यांच्या चार अवस्था त्यांना सापडल्या. दोन्ही दिवे बंद (00), पाहिला बंद, दुसरा चालू (01), पहिला चालू, दुसरा बंद (10), आणि दोन्ही चालू (11) अशा त्या चार अवस्था होत्या. या चार अवस्थांसाठी त्यांनी कोडभाषा ठरवली. उदाहरणार्थ 00 = A, 01 = B, 10= C आणि 11 = D. पण मग उरलेल्या E, F, ...c, m, 3, 9, = ! अशा चिन्हांचं काय करायचं? थोडक्‍यात 2 दिव्यांनाही त्यांचं काम भागेना. मग त्यांच्या लक्षात आलं, की दर वेळी एक दिवा वाढवला, की त्यांच्या अवस्थांची संख्या त्याअगोदरच्या अवस्थांच्या संख्येच्या दुप्पट होते. त्यामुळे 3 दिवे घेतले तर 8, तर 4 साठी 16, 5 साठी 32, 6 साठी 64 आणि 7 साठी 128 अशा अवस्था आपल्याला मिळतील.

आपल्या प्रेमिकांसाठी 6 दिव्यांचं किंवा बिट्‌सचं म्हणजेच 64 अवस्थांचं कोड पुरेसे होते. त्यामुळे प्रत्येकानं 6 दिवे घेऊन पहिल्या प्रेमीनं अक्षरं आणि त्यांचे ठरवलेल्या कोडप्रमाणे बिट्‌स बघून त्या 6 पैकी पाहिजेत ते दिवे चालू किंवा बंद करून आणि दुसऱ्या प्रेमीनं ते दिवे बघून त्यावरून कुठलं कॅरेक्‍टर पाठवलंय हे ओळखून ते लिहून घ्यायचं असा प्रेमालाप आई-वडिलांना न कळू देता त्यांना चालू ठेवता आला.
आपण कीबोर्डवर बघितलं, तर त्यावर कॅपिटल 26, लहान 26 आणि 10 अशी 62 अल्फाबेटस्‌ तर दिसतातच; पण त्याचबरोबर +, -, ?, ! अशी अनेक स्पेशल कॅरेक्‍टर्सही दिसतील. छापता येतील (प्रिंटेबल) अशी ही सगळी 96 कॅरेक्‍टर्स होतात.
याशिवाय कीबोर्डवर असलेली; पण छापता न येणारी एस्केप (ESC) किंवा टॅब (TAB) अशी कॅरेक्‍टर्स असतातच. तसंच जशी कॉम्प्युटर्स आणि कम्युनिकेशन्स यांच्यात प्रगती होत गेली, तसतशी अनेक स्पेशल कॅरेक्‍टर्सचीही गरज भासायला लागली. उदाहरणार्थ, जेव्हा आपण कुठलाही संदेश (उदाहरणार्थ, एसएमएस, ईमेल...) एका ठिकाणाहून दुसरीकडे पाठवतो, तेव्हा ETX, ACK, NAK अशी न छापता येण्याजोगी 32 कॅरेक्‍टर्स उपयोगी पडतात. त्यामुळे 96 + 32 मिळून 128 कॅरेक्‍टर्स होतात. त्यांच्यासाठी 7 बिट्‌स लागतात. ASCII हे असंच एक 7 बिट्‌सचं कोड होतं. आज जगात ते खूपच लोकप्रिय आहे. कालांतरानं युरोपियन देशातली काही खास कॅरेक्‍टर्ससुद्धा कोडमध्ये सामील करायची असल्यामुळे कॅरेक्‍टर्सची संख्या 128 पेक्षा जास्त झाली. त्यामुळे ऍस्कीचं 7 ऐवजी 8 बिट्‌सचंसुद्धा व्हर्जन निघालं. एबसिडिक (EBCDIC) हेही 8 बिट्‌सचं एक कोड आहे.

यानंतर इंग्रजी सोडून अरेबिक, देवनागरी आणि रशियन अशा भाषेतली अल्फाबेटस्‌सुद्धा या कोडिंगच्या पद्धतीत सामील करून घेतली, तर कोडिंगची एक वैश्विक (युनिव्हर्सल) पद्धत तयार होईल असं लोकांना वाटायला लागलं. यातूनच युनिकोडचा जन्म झाला. युनिकोडची अनेक व्हर्जन्स आणि स्टॅंडर्डस्‌ आहेत. त्यातलं एक व्हर्जन कॅरेक्‍टरच्या कोडिफिकेशनसाठी 8 च्या ऐवजी 16 बिट्‌स (दोन बाइट्‌स) वापरतात. त्यामुळे आपल्याला 65536 वेगवेगळी कॅरेक्‍टर्स (यांना युनिकोडमध्ये "कोड पॉइंट' असं म्हणतात) या पद्धतीत रिप्रेझेंट करता येतात. यामध्ये ग्रीक कॅरेक्‍टर्ससाठी 144, हेब्रूसाठी 112 आणि देवनागरी, ओरिया, तेलगू यांच्यासाठी प्रत्येकी 128 अशी सोय करून ठेवली आहे. दोनप्रमाणंच तीन आणि चार बाइट्‌स (24 आणि 32 बिट्‌स) वापरूनही युनिकोडची व्हर्जन्स आहेत.

आपण माहिती कॉम्प्युटरच्या "मेमरीत" साठवू शकतो. मेमरी अनेक कप्प्यांची बनलेली असते. प्रत्येक कप्प्याला "बाईट' असं म्हणतात. एका बाईटमध्ये कुठलंही एक चिन्ह (आकडा, अक्षर किंवा स्पेशल कॅरेक्‍टर) 8 बिट्‌सच्या कोड-भाषेत साठवू शकतो. प्रत्येक बिटसाठी आत अगदी लहान चुंबक असतील किंवा फ्लिप फ्लॉप किंवा "बबल मेमरी' असेल किंवा आणखीही काही हार्डवेअर असेल. एक गोष्ट मात्र नक्की: जे काही असेल त्याच्या फक्त दोनच अवस्था असतात; त्यांना आपण 0 आणि 1 असं आपल्या सोयीसाठी म्हणतो. (आतमध्ये कोणी 0 किंवा 1 असे आकडे लिहून ठेवत नसतो.) आता तंत्रज्ञानामुळे जास्तीत जास्त बिट्‌स कमीत कमी जागेत कोंबता यायला लागलेत. म्हणूनच मेमरीची क्षमता वाढतेय; पण आकार आणि किंमत कमी होतेय. मात्र, हे जरी असलं, तरी एका बाईटमध्ये एक कॅरेक्‍टर म्हणजे आठ बिट्‌स आणि प्रत्येक बिट म्हणजे 0 किंवा 1 हे काही गणित बदललेलं नाही.


स्पष्ट, नेमक्या आणि विश्वासार्ह बातम्या वाचण्यासाठी 'सकाळ'चे मोबाईल अॅप डाऊनलोड करा
Web Title: achyut godbole write bits and bytes article in saptarang