Chapter 02 Encoding Schemes and Number System

2.1 परिचय

क्या आपने कभी सोचा है कि कंप्यूटर कीबोर्ड पर मौजूद कुंजियाँ, जो मानव-पहचानने योग्य रूप में होती हैं, कंप्यूटर सिस्टम द्वारा कैसे समझी जाती हैं? यह खंड संक्षेप में कंप्यूटर द्वारा टेक्स्ट की व्याख्या पर चर्चा करता है।

हमने पिछले अध्याय में सीखा है कि कंप्यूटर केवल $0 \mathrm{~s}$ और $1 \mathrm{~s}$ की बाइनरी भाषा को समझता है। इसलिए, जब कीबोर्ड पर कोई कुंजी दबाई जाती है, तो वह आंतरिक रूप से एक अद्वितीय कोड से मैप की जाती है, जिसे आगे बाइनरी में बदला जाता है।

“हम भारतीयों के बहुत आभारी हैं, जिन्होंने हमें गिनना सिखाया, जिसके बिना कोई भी उपयोगी वैज्ञानिक खोज संभव नहीं होती।”

$\quad$ -अल्बर्ट आइंस्टीन

उदाहरण 2.1 जब ‘A’ कुंजी दबाई जाती है (चित्र 2.1), तो यह आंतरिक रूप से दशमलव मान 65 (कोड मान) से मैप की जाती है, जिसे फिर कंप्यूटर द्वारा समझे जाने के लिए इसके समकक्ष बाइनरी मान में बदला जाता है।

चित्र 2.1: कीबोर्ड द्वारा दर्ज किए गए डेटा का एन्कोडिंग

इसी प्रकार, जब हिंदी कीबोर्ड पर वर्ण ‘अ’ दबाते हैं, तो यह आंतरिक रूप से हेक्साडेसिमल मान 0905 से मैप किया जाता है, जिसका बाइनरी समकक्ष 0000100100000101 है।

तो एन्कोडिंग क्या है? डेटा को किसी विशिष्ट कोड का उपयोग करके एक समान साइफ़र में बदलने की प्रक्रिया को एन्कोडिंग कहा जाता है। यह समझना महत्वपूर्ण है कि कुंजी “$\mathrm{A}$” के लिए कोड मान 65 ही क्यों उपयोग किया जाता है और कोई अन्य मान क्यों नहीं? क्या यह सभी कुंजीपटलों के लिए समान है, चाहे उनका निर्माता कोई भी हो?

साइफ़र का अर्थ है किसी चीज़ को एक कोडित रूप में बदलना ताकि उसे दूसरों से छिपाया जा सके। इसे एन्क्रिप्शन भी कहा जाता है (साइफ़र में बदला जाता है) और इसे प्राप्तकर्ता को भेजा जाता है जो इसे डिक्रिप्ट करके वास्तविक सामग्री वापस प्राप्त कर सकता है।

हाँ, यह सभी कुंजीपटलों के लिए समान है। यह मानक एन्कोडिंग योजनाओं के कारण संभव हो पाया है जहाँ प्रत्येक अक्षर, अंक और प्रतीक को एक अद्वितीय कोड सौंपा जाता है। कुछ प्रसिद्ध एन्कोडिंग योजनाएँ निम्नलिखित खंडों में वर्णित हैं।

2.1.1 अमेरिकन स्टैंडर्ड कोड फॉर इन्फॉर्मेशन इंटरचेंज (ASCII)

1960 के दशक की शुरुआत में, कंप्यूटरों के पास एक-दूसरे से संवाद करने का कोई तरीका नहीं था क्योंकि कुंजीपटल की कुंजियों को दर्शाने के तरीके अलग-अलग थे। इसलिए, इस कमी को दूर करने के लिए एक सामान्य मानक की आवश्यकता को महसूस किया गया। इस प्रकार, वर्ण प्रतिनिधित्व को मानकीकृत करने के लिए ASCII एन्कोडिंग योजना विकसित की गई। ASCII आज भी सबसे अधिक प्रचलित कोडिंग योजना है।

ASCII प्रारंभ में वर्णों को दर्शाने के लिए 7 बिट का उपयोग करता है। याद रखें कि केवल 2 बाइनरी अंक (0 या 1) होते हैं। इसलिए, अंग्रेज़ी कीबोर्ड पर 7-बिट ASCII कोड द्वारा एन्कोड किए जा सकने वाले विभिन्न वर्णों की कुल संख्या 2⁷ = 128 है। तालिका 2.1 कुछ मुद्रणीय वर्णों के लिए ASCII कोड दिखाती है, लेकिन ASCII केवल अंग्रेज़ी भाषा के वर्ण समूह को ही एन्कोड कर सकता है।

$\hspace{3cm}$ तालिका 2.1 कुछ मुद्रणीय वर्णों के लिए ASCII कोड

वर्ण दशमलव मान वर्ण दशमलव मान वर्ण दशमलव मान
स्पेस 32 a 64 96
$!$ 33 A 65 a 97
" 34 B 66 b 98
# 35 C 67 c 99
$ 36 D 68 d 100
% 37 E 69 e 101
& 38 F 70 f 102
' 39 G 71 g 103
( 40 H 72 h 104
) 41 I 73 i 105

उदाहरण 2.2 शब्द DATA को एन्कोड करें और एन्कोड किए गए मान को बाइनरी मानों में बदलें जिन्हें कंप्यूटर समझ सके।

  • D का ASCII मान 68 है और इसका समतुल्य 7-बिट बाइनरी कोड = 1000100
  • A का ASCII मान 65 है और इसका समतुल्य 7-बिट बाइनरी कोड = 1000001
  • T का ASCII मान 84 है और इसका समतुल्य 7-बिट बाइनरी कोड = 1010100
  • A का ASCII मान 65 है और इसका समतुल्य 7-बिट बाइनरी कोड = 1000001

प्रत्येक अक्षर को उसके ASCII कोड मान से बदलने पर DATA का समतुल्य ASCII कोड मिलता है, और 7-बिट बाइनरी कोड से बदलने पर समतुल्य बाइनरी संख्या मिलती है, जैसा तालिका 2.2 में दिखाया गया है।

$\hspace{0.5cm}$ तालिका 2.2 शब्द DATA के लिए ASCII और बाइनरी मान

D A T A
ASCII कोड 68 65 84 65
बाइनरी कोड 1000100 1000001 1010100 1000001

सोचिए और विचार कीजिए

क्या हमें यूनिकोड का उपयोग करके भारतीय भाषा में टाइप करने के लिए कोई अतिरिक्त टूल या फ़ॉन्ट इंस्टॉल करना होगा?

2.1.2 भारतीय स्क्रिप्ट कोड फॉर इन्फॉर्मेशन इंटरचेंज (ISCII)

भारतीय भाषाओं के कंप्यूटर पर उपयोग को सुगम बनाने के लिए, भारत में 1980 के दशक के मध्य में ISCII नामक भारतीय स्क्रिप्ट्स के लिए एक सामान्य कोडिंग मानक विकसित किया गया। यह भारतीय भाषाओं के लिए 8-बिट कोड प्रतिनिधित्व है जिसका अर्थ है कि यह $2^{8}=256$ वर्णों को दर्शा सकता है। यह सभी 128 ASCII कोड्स को बरकरार रखता है और शेष कोड्स (128) को अतिरिक्त भारतीय भाषा वर्ण समूह के लिए उपयोग करता है। भाषा के ‘अक्षरों’ के लिए ऊपरी क्षेत्र (160-255) में अतिरिक्त कोड निर्धारित किए गए हैं।

गतिविधि 2.1

यूनिकोड में किसी भी तीन भारतीय भाषाओं में टाइप करने के लिए दो फ़ॉन्ट नामों का पता लगाइए और सूचीबद्ध कीजिए।

2.1.3 यूनिकोड

विभिन्न भाषाओं के वर्ण समूहों के लिए कई एन्कोडिंग योजनाएँ थीं। लेकिन वे एक-दूसरे से संवाद नहीं कर पा रही थीं, क्योंकि प्रत्येक ने वर्णों को अपने-अपने तरीके से दर्शाया। इसलिए, एक एन्कोडिंग योजना का उपयोग करके बनाया गया टेक्स्ट दूसरी मशीन द्वारा पहचाना नहीं गया जो भिन्न एन्कोडिंग योजना का उपयोग कर रही थी।

सोचिए और विचार कीजिए

UTF 32 में एक वर्ण UTF 16 या UTF 8 की तुलना में अधिक स्थान क्यों लेता है?

इसलिए, एक मानक जिसे UNICODE कहा जाता है, विकसित किया गया है ताकि दुनिया की हर लिखित भाषा के सभी अक्षरों को समाहित किया जा सके। UNICODE हर अक्षर के लिए एक अद्वितीय संख्या प्रदान करता है, चाहे वह कोई भी डिवाइस (सर्वर, डेस्कटॉप, मोबाइल), ऑपरेटिंग सिस्टम (Linux, Windows, iOS) या सॉफ़्टवेयर एप्लिकेशन (विभिन्न ब्राउज़र, टेक्स्ट एडिटर आदि) हो। सामान्यतः प्रयुक्त UNICODE एन्कोडिंग UTF-8, UTF-16 और UTF-32 हैं। यह ASCII का सुपरसेट है, और मान $0-128$ में वही अक्षर होते हैं जो ASCII में होते हैं। देवनागरी स्क्रिप्ट के लिए यूनिकोड अक्षर टेबल 2.3 में दिखाए गए हैं। तालिका की प्रत्येक सेल में एक अक्षर और उसके समतुल्य हेक्साडेसिमल मान दिए गए हैं।

$\hspace{2.5cm}$ टेबल 2.3 देवनागरी स्क्रिप्ट के लिए यूनिकोड तालिका

2.2 संख्या प्रणाली

अब तक, हमने सीखा है कि कीबोर्ड की हर कुंजी (जो अक्षर, विशेष प्रतीक, फंक्शन कुंजी आदि को दर्शाती है) को आंतरिक रूप से एक एन्कोडिंग स्कीम के अनुसार ASCII कोड से मैप किया जाता है। यह एन्कोड किया गया मान आगे अपने समतुल्य बाइनरी रूप में परिवर्तित होता है ताकि कंप्यूटर उसे समझ सके। चित्र 2.1 में, अक्षर “A” के लिए कोड दशमलव संख्या प्रणाली से संबंधित है और उसका समतुल्य बाइनरी मान बाइनरी संख्या प्रणाली से संबंधित है। एक संख्या प्रणाली संख्याओं को दर्शाने (लिखने) की एक विधि है।

प्रत्येक संख्या प्रणाली के पास अद्वितीय वर्णों या लिटरल्स का एक समूह होता है। इन लिटरल्स की संख्या को संख्या प्रणाली का रेडिक्स या आधार कहा जाता है। कंप्यूटर के संदर्भ में प्रयोग की जाने वाली चार विभिन्न संख्या प्रणालियाँ चित्र 2.2 में दिखाई गई हैं। इन संख्या प्रणालियों की व्याख्या आगे के अनुभागों में की गई है।

चित्र 2.2: चार विभिन्न संख्या प्रणालियाँ

संख्या प्रणालियों को स्थानिक संख्या प्रणाली भी कहा जाता है क्योंकि किसी संख्या में प्रत्येक प्रतीक (अर्थात् अंक और वर्ण) का मान उसकी संख्या के भीतर स्थिति पर निर्भर करता है। संख्या में भी हमारे द्वारा प्रयुक्त दशमलव संख्याओं के समान एक भिन्नात्मक भाग हो सकता है। दी गई संख्या के पूर्णांक भाग में सबसे दाईं स्थिति पर स्थित प्रतीक की स्थिति 0 होती है। पूर्णांक भाग में स्थिति का मान (जिसे स्थिति मान भी कहा जाता है) दाएं से बाएं 1 से बढ़ता है। दूसरी ओर, संख्या के भिन्नात्मक भाग में पहला प्रतीक स्थिति संख्या -1 रखता है, जो भिन्नात्मक भाग को बाएं से दाएं पढ़ते समय 1 से घटता है। किसी संख्या में प्रत्येक प्रतीक का एक स्थिति मान होता है, जिसकी गणना उसकी स्थिति मान और संख्या प्रणाली के आधार मान का उपयोग करके की जाती है। आधार 10 वाली दशमलव प्रणाली में स्थिति संख्या 3 पर स्थित प्रतीक का स्थिति मान $10^{3}$ होता है। स्थिति मान और प्रतीक मान के गुणनफल को जोड़ने पर दी गई संख्या प्राप्त होती है। चित्र 2.3 स्थिति मान का उपयोग करके दशमलव संख्या 123.45 की गणना दिखाता है।

अंक 1 2 3 . 4 5
स्थिति संख्या 2 1 0 -1 -2
स्थिति मान $(10)^{2}$ $(10)^{1}$ $(10)^{0}$ $(10)^{-1}$ $(10)^{-2}$

स्थिति मान और संगत अंक के गुणनफल को जोड़कर दशमलव संख्या प्राप्त करें।

$$ 1 \times 10^{2}+2 \times 10^{1}+3 \times 10^{0}+4 \times 10^{-1}+5 \times 10^{-2}=(123.45)_{10} $$

आकृति 2.3: दशमलव संख्या की गणना उसके स्थानीय मानों का प्रयोग करते हुए

2.2.1 दशमलव संख्या प्रणाली

दशमलव संख्या प्रणाली हमारे दैनिक जीवन में प्रयोग की जाती है। इसे आधार-10 प्रणाली कहा जाता है क्योंकि इसमें 10 अंक (0 से 9) प्रयोग होते हैं। कोई संख्या दो मानों के द्वारा प्रस्तुत की जाती है—प्रतीक मान (0 से 9 कोई भी अंक) और स्थानीय मान (आधार के संदर्भ में)। आकृति 2.4 दशमलव संख्या 237.25 के पूर्णांक और दशमलव भाग को दर्शाती है साथ ही स्थानीय मानों का प्रयोग करते हुए दशमलव संख्या की गणना भी।

आकृति 2.4: दशमलव संख्या के अंकों के लिए स्थानीय मान, जिन्हें आधार 10 की घात के रूप में दर्शाया गया है

किसी संख्या प्रणाली का आधार मान उस संख्या को दूसरी संख्या प्रणाली से अलग करने के लिए प्रयोग होता है। आधार मान को दी गई संख्या के दाहिने नीचे लिखा जाता है। उदाहरण के लिए, 70₈ एक अष्टकीय संख्या को दर्शाता है और 70₁₀ एक दशमलव संख्या को दर्शाता है।

2.2.2 बाइनरी (द्विआधारी) संख्या प्रणाली

कंप्यूटर में ICs (इंटीग्रेटेड सर्किट्स) बड़ी संख्या में ट्रांजिस्टरों से बने होते हैं जो प्राप्त होने वाले इलेक्ट्रॉनिक सिग्नल (लो/हाई) द्वारा सक्रिय होते हैं। ट्रांजिस्टर की ON/हाई और OFF/लो स्थिति को क्रमशः दो अंकों 1 और 0 से दर्शाया जाता है। ये दो अंक 1 और 0 बाइनरी संख्या प्रणाली बनाते हैं। इस प्रणाली को आधार-2 प्रणाली भी कहा जाता है क्योंकि इसमें केवल दो अंक होते हैं। बाइनरी संख्याओं के कुछ उदाहरण हैं 1001011, 1011.101, 111111.01। एक बाइनरी संख्या को समतुल्य दशमलव संख्या में मैप किया जा सकता है जिसे मानव आसानी से समझ सकता है।

तालिका 2.4 दशमलव संख्या प्रणाली के अंकों (0-9) के लिए बाइनरी मान

दशमलव बाइनरी
0 0
1 1
2 10
3 11
4 100
6 101
7 110
8 111
9 1000

2.2.3 अष्टकीय संख्या प्रणाली

जैसे-जैसे दशमलव संख्या का मान बढ़ता है, उसकी बाइनरी प्रस्तुति में बिट्स (0/1) की संख्या भी बढ़ती है। कभी-कभी एक बाइनरी संख्या इतनी बड़ी हो जाती है कि उसे प्रबंधित करना कठिन हो जाता है। बाइनरी संख्याओं की संक्षिप्त प्रस्तुति के लिए अष्टकीय संख्या प्रणाली बनाई गई थी। अष्टकीय संख्या प्रणाली को आधार-8 प्रणाली कहा जाता है क्योंकि इसमें कुल आठ अंक (0-7) होते हैं, और स्थानीय मान 8 की घातों में व्यक्त किया जाता है। किसी भी अष्टकीय अंक को दर्शाने के लिए तीन बाइनरी अंक $(8=2^3)$ पर्याप्त हैं। तालिका 2.5 आठ अष्टकीय अंकों के दशमलव और बाइनरी समतुल्य दिखाती है। अष्टकीय संख्याओं के उदाहरण हैं $237.05_{8},13_{8}$, और $617.24_{8}$।

तालिका 2.5 अष्टकीय संख्याओं 0–7 के दशमलव और बाइनरी समतुल्य

अष्टक अंक दशमलव मान 3-बिट बाइनरी संख्या
0 0 000
1 1 001
2 2 010
3 3 011
4 4 100
5 5 101
6 6 110
7 7 111

2.2.4 हेक्साडेसिमल संख्या प्रणाली

हेक्साडेसिमल संख्याएँ बाइनरी संख्याओं की संक्षिप्त प्रस्तुति के लिए भी प्रयोग की जाती हैं। इसमें 16 अद्वितीय प्रतीक $(0-9, A-F)$ होते हैं, और इसे आधार-16 प्रणाली कहा जाता है। हेक्साडेसिमल प्रणाली में, प्रत्येक अल्फ़ान्यूमेरिक अंक को 4 बाइनरी अंकों के समूह के रूप में दर्शाया जाता है क्योंकि 4 बिट्स $\left(2^{4}=16\right)$ 16 अल्फ़ान्यूमेरिक प्रतीकों को दर्शाने के लिए पर्याप्त हैं। ध्यान दें कि दशमलव संख्याएँ 10 से 15 तक अक्षरों A से F द्वारा दर्शाई जाती हैं। हेक्साडेसिमल संख्याओं के उदाहरण हैं $23A.05_{16}$, $1C3_{16}$, $619B.A_{16}$। तालिका 2.6 हेक्साडेसिमल संख्या प्रणाली में प्रयुक्त 16 अल्फ़ान्यूमेरिक प्रतीकों के दशमलव और बाइनरी समकक्ष दिखाती है।

तालिका 2.6 हेक्साडेसिमल संख्याओं $0-9$, A-F के दशमलव और बाइनरी समकक्ष

हेक्साडेसिमल प्रतीक दशमलव मान 4-बिट बाइनरी संख्या
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
E 13 1101
F 14 1110

2.2.5 हेक्साडेसिमल संख्या प्रणाली के अनुप्रयोग

  • मुख्य मेमोरी मेमोरी स्थानों से बनी होती है जहाँ प्रत्येक स्थान का एक अद्वितीय पता होता है। आमतौर पर, एक मेमोरी पते का आकार 16-बिट या 32-बिट होता है। 16-बिट मेमोरी पते तक पहुँचने के लिए, एक प्रोग्रामर को 16 बाइनरी बिट्स का उपयोग करना पड़ता है, जिससे निपटना कठिन होता है। पते के प्रतिनिधित्व को सरल बनाने के लिए, हेक्साडेसिमल और ऑक्टल संख्याओं का उपयोग किया जाता है। आइए एक 16-बिट मेमोरी पते 1100000011110001 पर विचार करें। हेक्साडेसिमल संकेतन का उपयोग करके, इस पते को COF1 के रूप में मैप किया जाता है जिसे याद रखना अधिक आसान है। इस 16-बिट मान के लिए समतुल्य ऑक्टल प्रतिनिधित्व 140361 है।
  • हेक्साडेसिमल संख्याओं का उपयोग वेबपेज पर रंगों का वर्णन करने के लिए भी किया जाता है। प्रत्येक रंग तीन प्राथमिक रंगों—लाल, हरा और नीले—से बना होता है, जिन्हें लोकप्रिय रूप से RGB (संक्षेप में) कहा जाता है। अधिकांश रंग मानचित्रों में, प्रत्येक रंग आमतौर पर 16 मिलियन रंगों की पटल से चुना जाता है। इसलिए, प्रत्येक रंग के प्रतिनिधित्व के लिए 24 बिट्स आवश्यक होते हैं जिसमें तीन घटक होते हैं (लाल के लिए 8 बिट्स, हरे के लिए 8 बिट्स, नीले घटक के लिए 8 बिट्स)। 24-बिट बाइनरी रंग कोड को याद रखना कठिन होता है। इसलिए, रंग कोडों को संक्षिप्त प्रतिनिधित्व के लिए हेक्साडेसिमल रूप में लिखा जाता है। उदाहरण के लिए, लाल रंग के लिए 24-बिट कोड $11111111,00000000,00000000$ है। समतुल्य हेक्साडेसिमल संकेतन $(\mathrm{FF}, 00, 00)$ है, जिसे आसानी से याद किया जा सकता है और उपयोग किया जा सकता है। तालिका 2.7 कुछ रंगों के उदाहरण दिखाती है जो दशमलव, बाइनरी और हेक्साडेसिमल संख्याओं के साथ दर्शाए गए हैं।

तालिका 2.7 दशमलव, बाइनरी और हेक्साडेसिमल संख्याओं में रंग कोड

रंग का नाम दशमलव बाइनरी हेक्साडेसिमल
काला $(0,0,0)$ $(00000000,00000000,00000000)$ $(00,00,00)$
सफेद $(255,255,255)$ $(11111111,11111111,11111111)$ $(\mathrm{FF}, \mathrm{FF}, \mathrm{FF})$
पीला $(255,255,0)$ $(1111111,11111111,00000000)$ $(\mathrm{FF}, \mathrm{FF}, 00)$
स्लेटी $(128,128,128)$ $(10000000,10000000,10000000)$ $(80,80,80)$

2.3 संख्या प्रणालियों के बीच रूपांतरण

पिछले खंड में हमने कंप्यूटरों में प्रयुक्त विभिन्न संख्या प्रणालियों के बारे में जाना। अब आइए जानें कि किसी संख्या को एक संख्या प्रणाली से दूसरी संख्या प्रणाली में कैसे बदला जाता है ताकि कंप्यूटर में संख्या के प्रतिनिधित्व को बेहतर ढंग से समझ सकें। दशमलव संख्या प्रणालि मनुष्यों द्वारा सर्वाधिक प्रयुक्त होती है, परंतु डिजिटल प्रणालियाँ बाइनरी संख्याओं को समझती हैं; जबकि अष्टक और हेक्साडेसिमल संख्या प्रणालियाँ बाइनरी प्रतिनिधित्व को सरल बनाने के लिए प्रयुक्त होती हैं ताकि हम उन्हें समझ सकें।

गतिविधि 2.2

निम्नलिखित दशमलव संख्याओं को कंप्यूटर द्वारा समझे जाने वाले रूप में बदलें।

(i) $(593)_{10}$

(ii) $(326)_{10}$

(iii) $(79)_{10}$

2.3.1 दशमलव से अन्य संख्या प्रणालियों में रूपांतरण

किसी दशमलव संख्या को किसी अन्य संख्या प्रणालि (बाइनरी, अष्टक या हेक्साडेसिमल) में बदलने के लिए नीचे दिए गए चरणों का पालन करें।

चरण 1: दी गई संख्या को उस संख्या प्रणालि के आधार मान (b) से विभाजित करें जिसमें उसे बदला जाना है

चरण 2: शेषफल को नोट करें

चरण 3: भागफल को आधार मान से विभाजित करते रहें और शेषफल को नोट करते रहें जब तक कि भागफल शून्य न हो जाए

चरण 4: नोट किए गए शेषफलों को उल्टे क्रम में (नीचे से ऊपर तक) लिखें

(A) दशमलव से द्विआधारी रूपांतरण

चूँकि द्विआधारी प्रणाली का आधार मान 2 है, दशमलव संख्या को 2 से बार-बार विभाजित किया जाता है जब तक कि भागफल 0 न हो जाए, ऊपर दिए गए चरणों का पालन करते हुए। प्रत्येक विभाजन के बाद शेषफल को रिकॉर्ड करें और अंत में शेषफलों को उस उल्टे क्रम में लिखें जिसमें वे गणना किए गए थे।

गतिविधि 2.3

निम्नलिखित दशमलव संख्याओं को अष्टक संख्याओं में व्यक्त करें।

(i) $(913)_{10}$

(ii) $(845)_{10}$

(iii) $(66)_{10}$

चित्र 2.1 में आपने देखा कि 65 का द्विआधारी समतुल्य $1000001_2$ है। आइए अब किसी दशमलव मान को उसके द्विआधारी रूप में बदलें और सत्यापित करें कि $65_{10}$ का द्विआधारी समतुल्य $1000001_2$ है।

चित्र 2.5: किसी दशमलव संख्या को उसके समतुल्य द्विआधारी संख्या में रूपांतरण

उदाहरण 2.3 (122) ${ }_{10}$ को द्विआधारी संख्या में बदलें।

इसलिए, $122_{10} = (1111010)_{2}$

(B) दशमलव से अष्टक रूपांतरण

चूँकि अष्टक (octal) का आधार मान 8 है, दशमलव संख्या को बार-बार 8 से विभाजित करके उसके समतुल्य अष्टक संख्या प्राप्त की जाती है।

चित्र 2.6: दशमलव संख्या को उसके समतुल्य अष्टक संख्या में रूपांतरण

अक्षर “A” का ASCII कोड मान (65)₁₀ का अष्टक समतुल्य चित्र 2.6 में दिखाए अनुसार परिकलित किया जाता है।

उदाहरण 2.4 (122)₁₀ को अष्टक संख्या में बदलें।

इसलिए, 122₁₀ = 172₈

(C) दशमलव से षोडश (Hexadecimal) रूपांतरण

चूँकि षोडश का आधार मान 16 है, दशमलव संख्या को बार-बार 16 से विभाजित करके उसके समतुल्य षोडश संख्या प्राप्त की जाती है।
अक्षर ‘A’ का ASCII कोड (65)₁₀ का षोडश समतुल्य चित्र 2.7 में दिखाए अनुसार परिकलित किया जाता है।

चित्र 2.7: दशमलव संख्या को उसके समतुल्य षोडश संख्या में रूपांतरण

उदाहरण 2.5 (122)₁₀ को षोडश संख्या में बदलें।

इसलिए, $122_{10}=7A_{16}$

2.3.2 अन्य संख्या प्रणालियों से दशमलव संख्या प्रणाली में रूपांतरण

हम निम्नलिखित चरणों का उपयोग करके दी गई संख्या को आधार मान b से उसके दशमलव समकक्ष में रूपांतरित कर सकते हैं, जहाँ आधार मान b बाइनरी, ऑक्टल और हेक्साडेसिमल संख्या प्रणाली के लिए क्रमशः 2, 8 और 16 हो सकता है।

चरण 1: दी गई संख्या में प्रत्येक अल्फ़ान्यूमेरिक प्रतीक के लिए स्थिति संख्या लिखें

चरण 2: प्रत्येक प्रतीक के लिए उसकी स्थिति संख्या को आधार मान b से घातांकित करके स्थिति मान प्राप्त करें

चरण 3: प्रत्येक अंक को संबंधित स्थिति मान से गुणा करके दशमलव मान प्राप्त करें

चरण 4: सभी इन दशमलव मानों को जोड़कर समकक्ष दशमलव संख्या प्राप्त करें

गतिविधि 2.4

निम्नलिखित संख्याओं को दशमलव संख्याओं में रूपांतरित करें

(i) $(110101)_2$

(ii) $(1703)_8$

(iii) $(COF5)_{16}$

(A) बाइनरी संख्या से दशमलव संख्या

चूँकि बाइनरी संख्या प्रणाली का आधार 2 है, स्थिति मान 2 की घातों के रूप में परिकलित किए जाते हैं। उपरोक्त उल्लिखित चरणों का उपयोग करके हम एक बाइनरी संख्या को उसके समकक्ष दशमलव मान में नीचे दिखाए अनुसार रूपांतरित कर सकते हैं:

उदाहरण 2.6 $(1101)_{2}$ को दशमलव संख्या में रूपांतरित करें।

नोट: दशमलव संख्या प्राप्त करने के लिए स्थानीय मान और संगत अंक का गुणनफल जोड़ें।

(B) अष्टांकीय संख्या से दशमलव संख्या

निम्न उदाहरण दिखाता है कि आधार मान 8 का उपयोग करके किसी अष्टांकीय संख्या के दशमलव समकक्ष की गणना कैसे की जाती है।

उदाहरण 2.7 (257)${}_{8}$ को दशमलव संख्या में बदलें।

बाइनरी संख्या में 3 बिट्स को एक साथ समूहित कर अष्टांकीय संख्या क्यों बनाई जाती है?

अष्टांकीय संख्या प्रणाली का आधार मान 8 है। मान 8 को 2 के घात के रूप में रूपांतरित करें, अर्थात् $8=2^{3}$। इसलिए, सभी 8 अष्टांकीय अंकों को दर्शाने के लिए तीन बाइनरी अंक पर्याप्त हैं।

सरल शब्दों में, तीन बाइनरी अंकों के सभी संभावित संयोजन गिनें, जो $2 \times 2 \times 2=8$ हैं। इसलिए, किसी भी अष्टांकीय अंक को दर्शाने के लिए 3 बिट पर्याप्त हैं। इसलिए, बाइनरी संख्या में 3-बिट समूह बनाकर समकक्ष अष्टांकीय संख्या प्राप्त की जाती है।

(C) हेक्साडेसिमल संख्या से दशमलव संख्या

किसी हेक्साडेसिमल संख्या को दशमलव संख्या में बदलने के लिए, इस खंड में दिए गए चरणों का उपयोग करें जिसमें हेक्साडेसिमल संख्या प्रणाली का आधार मान 16 है। गणना में हेक्साडेसिमल संख्या के वर्णमाला चिह्न के समकक्ष दशमलव मान का उपयोग करें, जैसा कि तालिका 2.6 में दिखाया गया है।

उदाहरण 2.8 (3A5)${}_{16}$ को दशमलव संख्या में बदलें।

नोट: दशमलव मान के लिए तालिका 2.5 का प्रयोग करें

2.3.3 बाइनरी संख्या से ऑक्टल/हेक्साडेसिमल संख्या में और इसके विपरीत रूपांतरण

एक बाइनरी संख्या को ऑक्टल या हेक्साडेसिमल संख्या में इस प्रकार रूपांतरित किया जाता है कि क्रमशः 3 और 4 बिट्स के समूह बनाए जाते हैं और प्रत्येक समूह को उसके समतुल्य ऑक्टल/हेक्साडेसिमल अंक से प्रतिस्थापित किया जाता है।

(A) बाइनरी संख्या से ऑक्टल संख्या

किसी दी गई बाइनरी संख्या के लिए, समतुल्य ऑक्टल संख्या जो 3 बिट्स द्वारा दर्शाई जाती है, दायें से बायें 3 बिट्स के समूह बनाकर और प्रत्येक 3-बिट समूह को संगत ऑक्टल अंक से प्रतिस्थापित करके निकाली जाती है। यदि बाइनरी संख्या में बिट्स की संख्या 3 का गुणज नहीं है, तो बाइनरी संख्या के सबसे महत्वपूर्ण स्थान पर आवश्यक संख्या में 0 जोड़ें।

उदाहरण 2.9 (10101100)${}_{2}$ को ऑक्टल संख्या में रूपांतरित करें।

दी गई बाइनरी संख्या के 3-बिट्स के समूह बनाएं (दायें से बायें) $\hspace{1cm}\underline{010} \quad \underline{101} \quad \underline{100}$

प्रत्येक 3-बिट समूह के लिए ऑक्टल अंक लिखें $\hspace{2.5cm}$ 2 $\hspace{0.5cm}$ 5 $\hspace{0.5cm}$ 4

$\hspace{1cm}$ इसलिए, $(10101100){2}=(254){8}$

बाइनरी संख्या में 4 बिट्स को एक साथ समूहित कर हेक्साडेसिमल संख्या क्यों प्राप्त की जाती है?

हेक्साडेसिमल संख्या प्रणाली का आधार मान 16 है। मान 16 को 2 के घात के रूप में लिखें अर्थात् $16=2^{4}$। इसलिए, सभी 16 हेक्साडेसिमल प्रतीकों को दर्शाने के लिए चार बाइनरी अंक पर्याप्त हैं।

(B) ऑक्टल संख्या से बाइनरी संख्या

प्रत्येक अष्टांक अंक 3-अंकीय बाइनरी संख्या की एक एन्कोडिंग है। अष्टांक संख्या को बाइनरी में इस प्रकार रूपांतरित किया जाता है कि प्रत्येक अष्टांक अंक को तीन बाइनरी अंकों के समूह से प्रतिस्थापित किया जाता है।

उदाहरण 2.10 (705)₈ को बाइनरी संख्या में बदलें।

अष्टांक अंक $\hspace{2cm}$ 7 $\hspace{1.5cm}$ 0 $\hspace{1.5cm}$ 5

प्रत्येक अंक के लिए 3-बिट बाइनरी

मान लिखें $\hspace{1cm}$ 111 $\hspace{1cm}$ 000 $\hspace{1cm}$ 101

$\hspace{1cm}$ इसलिए, $(705) _{8}=(111000101) _{2}$

सोचिए और विचार कीजिए

दशमलव संख्या के भिन्नात्मक भाग को किसी अन्य संख्या प्रणाली में बदलते समय हम पूर्णांक भाग को ऊपर से नीचे क्यों लिखते हैं और इसके विपरीत क्यों नहीं?

(C) बाइनरी संख्या से हेक्साडेसिमल संख्या

किसी बाइनरी संख्या को दी गई हो, तो उसके समतुल्य हेक्साडेसिमल संख्या की गणना इस प्रकार की जाती है कि दाएँ से बाएँ 4 बाइनरी अंकों का एक समूह बनाया जाता है और प्रत्येक 4-बिट समूह को उसके संगत हेक्साडेसिमल अल्फ़ान्यूमेरिक प्रतीक से प्रतिस्थापित किया जाता है। यदि आवश्यक हो, तो बाइनरी संख्या के सबसे महत्वपूर्ण स्थान पर 0 बिट जोड़ दिया जाता है ताकि बाइनरी संख्या में बिटों की संख्या 4 का गुणज हो।

उदाहरण 2.11 $(0110101100)_{2}$ को हेक्साडेसिमल संख्या में बदलें।

दी गई बाइनरी संख्या का

4-बिट समूह बनाएँ (दाएँ से बाएँ) $\hspace{1cm}$ 0001 $\hspace{1cm}$ 1010 $\hspace{1cm}$ 1100

प्रत्येक समूह के लिए हेक्साडेसिमल प्रतीक

लिखें $\hspace{3cm}$ 1 $\hspace{1.5cm}$ A $\hspace{1.5cm}$ C

$\hspace{1cm}$ इसलिए, $(0110101100) _2={1AC} _{16}$

गतिविधि 2.5

निम्नलिखित संख्याओं का द्विआधारी निरूपण लिखिए।

(i) $(F018)_{16}$

(ii) $(172)_{16}$

(iii) $(613)_{8}$

(D) हेक्साडेसिमल संख्या से द्विआधारी संख्या

प्रत्येक हेक्साडेसिमल प्रतीक 4-अंकीय द्विआधारी संख्या के लिए एक एन्कोडिंग है। इसलिए, किसी हेक्साडेसिमल संख्या के समकक्ष द्विआधारी मान प्राप्त करने के लिए प्रत्येक हेक्षाडेसिमल अंक के 4-बिट द्विआधारी समकक्ष को प्रतिस्थापित कर उन्हें एक साथ जोड़ा जाता है (तालिका 2.5 देखें)।

उदाहरण 2.12 (23D) ${ }_{16}$ को द्विआधारी संख्या में बदलिए।

हेक्साडेसिमल अंक $\hspace{1.5cm}$ 2 $\hspace{2cm}$ 3 $\hspace{3cm}$ D

प्रत्येक अंक के लिए 4-बिट द्विआधारी मान लिखिए $\hspace{2cm}$ 0010 $\hspace{2cm}$ 0011 $\hspace{2cm}$ 1101

$\hspace{3cm}$ इसलिए, $(23 \mathrm{D}) _{16}=(001000111101) _{2}$

2.3.4 भिन्नात्मक भाग वाली संख्या का रूपांतरण

अब तक हमने मुख्यतः पूर्ण संख्याओं के विभिन्न रूपांतरणों को देखा है। इस खंड में हम भिन्नात्मक भाग वाली संख्याओं के रूपांतरण के बारे में सीखेंगे।

(A) दशमलव संख्या का भिन्नात्मक भाग किसी अन्य संख्या प्रणाली में

किसी दशमलव संख्या के भिन्नात्मक भाग को आधार मान $b$ वाली किसी अन्य संख्या प्रणाली में बदलने के लिए, भिन्नात्मक भाग को आधार मान $b$ से तब तक बार-बार गुणा कीजिए जब तक वह शून्य न हो जाए। उस संख्या प्रणाली में समकक्ष संख्या पाने के लिए ऊपर से नीचे की ओर पूर्णांक भाग को प्रयोग कीजिए। यदि क्रमिक गुणा में भिन्नात्मक भाग शून्य न हो, तो उदाहरण के लिए 10 गुणा के बाद रोक दीजिए। कुछ स्थितियों में भिन्नात्मक भाग दोहराने लग सकता है, तब आगे की गणना रोक दीजिए।

उदाहरण 2.13 $(0.25)_{10}$ को बाइनरी में बदलें।

$\begin{array}{lr} & \text { पूर्णांक भाग } \\ 0.25 \times 2=0.50 & 1 \\ 0.50 \times 2=1.00 & 0 \end{array}$

चूँकि भिन्नात्मक भाग 0 है, गुणा रोक दिया गया। ऊपर से नीचे तक पूर्णांक भाग लिखें ताकि भिन्नात्मक भाग के लिए बाइनरी संख्या मिल सके।

इसलिए, $(0.25) _{10}=(0.01) _{2}$

उदाहरण 2.14 (0.675) ${ }_{10}$ को बाइनरी में बदलें।

$\begin{array}{lr} & \text { पूर्णांक भाग } \\ 0.675 \times 2=1.350 & 1 \\ 0.350 \times 2=0.700 & 0 \\ 0.700 \times 2=1.400 & 1 \\ 0.400 \times 2=0.800 & 0 \\ 0.800 \times 2=1.600 & 1 \\ 0.600 \times 2=1.200 & 1 \\ 0.200 \times 2=0.400 & 0 \end{array}$

चूँकि भिन्नात्मक भाग (.400) गणना में दोहराव वाला मान है, गुणा रोक दिया गया। ऊपर से नीचे तक पूर्णांक भाग लिखें ताकि भिन्नात्मक भाग के लिए बाइनरी संख्या मिल सके।

इसलिए, $(0.675) 10=(0.1010110) 2$

उदाहरण 2.15 (0.675) ${ }_{10}$ को ऑक्टल में बदलें।

$\begin{array}{lr} & \text { पूर्णांक भाग } \\ 0.675 \times 8=5.400 & 5 \\ 0.400 \times 8=3.200 & 3 \\ 0.200 \times 8=1.600 & 1 \\ 0.600 \times 8=4.800 & 4 \\ 0.800 \times 8=6.400 & 6 \end{array}$

चूँकि भिन्नात्मक भाग (.400) दोहराव वाला है, गुणा रोक दिया गया। ऊपर से नीचे तक पूर्णांक भाग लिखें ताकि भिन्नात्मक भाग के लिए ऑक्टल संख्या मिल सके।

इसलिए, $(0.675) _{10}=(0.53146) _{8}$

उदाहरण 2.16 (0.675) ${ }_{10}$ को हेक्साडेसिमल रूप में बदलें।

[ \begin{array}{lr} & \text{पूर्णांक भाग} \ 0.675 \times 16=10.800 & A \quad \text{(10 के लिए हेक्साडेसिमल प्रतीक)} \ 0.800 \times 16=12.800 & C \quad \text{(12 के लिए हेक्साडेसिमल प्रतीक)} \end{array} ]

चूँकि भिन्नात्मक भाग (.800) दोहरा रहा है, गुणा को रोक दिया जाता है। भिन्नात्मक भाग के हेक्साडेसिमल समतुल्य को प्राप्त करने के लिए ऊपर से नीचे तक पूर्णांक भाग को लिखें।

इसलिए, ((0.675){10}=(0.\mathrm{AC}){16})

(B) भिन्नात्मक भाग वाली गैर-दशमलव संख्या को दशमलव संख्या प्रणाली में

दी गई संख्या में प्रत्येक अंक का स्थानीय मान उसके आधार मान का उपयोग करके परिकलित करें। स्थानीय मान और अंक के गुणनफल को जोड़कर भिन्नात्मक भाग वाली समतुल्य दशमलव संख्या प्राप्त करें।

उदाहरण 2.17 (100101.101)()_{2}) को दशमलव में बदलें।

इसलिए, ((100101.101){2}=(37.625){10})

उदाहरण 2.18 (605.12) को दशमलव संख्या में बदलें।

(C) भिन्नात्मक बाइनरी संख्या को ऑक्टल या हेक्साडेसिमल संख्या में

भिन्नात्मक बाइनरी संख्या को ऑक्टल या हेक्साडेसिमल मान में बदलने के लिए, पूर्णांक भाग में 3-बिट या 4-बिट के समूहों को संगत अंक से प्रतिस्थापित करें। इसी प्रकार, भिन्नात्मक भाग के लिए बाएँ से दाएँ की ओर 3-बिट या 4-बिट के समूह बनाएँ और प्रत्येक समूह को ऑक्टल या हेक्साडेसिमल संख्या प्रणाली में उसके समतुल्य अंक या प्रतीक से प्रतिस्थापित करें। 3 या 4 बिट के पूर्ण समूह बनाने के लिए भिन्नात्मक भाग के अंत में 0 जोड़ें।

उदाहरण 2.19 $(10101100.01011)_{2}$ को ऑक्टल संख्या में बदलें।

3 बिट के पूर्ण समूह बनाएँ $\quad$ $\underline{010} \underline{101} \underline{100} . \underline{010} \underline{110}$

प्रत्येक समूह के लिए ऑक्टल प्रतीक लिखें $\quad$ 2 $\quad$ 5 $\quad$ 4 .$\quad$ 2 $\quad$ 6

इसलिए, $(10101100.01011) _{2}=(254.26) _{8}$

नोट: पूर्णांक भाग के लिए दाएँ से बाएँ और भिन्नात्मक भाग के लिए बाएँ से दाएँ की ओर 3-बिट समूह बनाएँ।

उदाहरण 2.20 $(10101100.010111)_{2}$ को हेक्साडेसिमल संख्या में बदलें

4 बिट के पूर्ण समूह बनाएँ $\underline{1010} \underline{1100} . \underline{0101} \underline{1100}$

हेक्साडेसिमल प्रतीक लिखें

प्रत्येक समूह के लिए $\quad$ A $\quad$ C .$\quad$ 5 $\quad$ C

इसलिए, $(10101100.010111) _{2}=(\text { AC.5C }) _{16}$

सारांश

  • एन्कोडिंग स्कीम टेक्स्ट को ऐसे कोड्स में मैप करती है जो कंप्यूटरों के बीच संचार को आसान बनाते हैं।
  • टेक्स्टुअल डेटा को ASCII, ISCII या यूनिकोड का उपयोग करके एन्कोड किया जाता है।
  • यूनिकोड स्कीम एक कैरेक्टर एन्कोडिंग स्टैंडर्ड है जो दुनिया की लगभग सभी भाषाओं के सभी कैरेक्टर्स को एन्कोड कर सकता है।
  • कंप्यूटर एक डिजिटल सिस्टम होने के नाते केवल बाइनरी नंबरों (0 और 1) को समझता है।
  • एन्कोड किए गए टेक्स्ट को कंप्यूटर द्वारा प्रोसेसिंग के लिए बाइनरी फॉर्म में बदला जाता है।
  • ऑक्टल और हेक्साडेसिमल नंबर सिस्टम बाइनरी कोडेड रिप्रेज़ेंटेशन को सरल बनाने के लिए उपयोग किए जाते हैं क्योंकि ये क्रमशः 3 या 4 बिट्स के बाइनरी नंबरों को ग्रुप करने की अनुमति देते हैं।

अभ्यास

1. बाइनरी, ऑक्टल और हेक्साडेसिमल नंबर सिस्टम के बेस वैल्यू लिखिए।

2. ASCII और ISCII का फुल फॉर्म बताइए।

3. निम्नलिखित रूपांतरण करने का प्रयास कीजिए।

(i) $(514)8 = (?){10}$

(ii) $(220)_8 = (?)_2$

(iv) $(4D9){16} = (?){10}$

(iii) $(76F){16} = (?){10}$

(v) $(11001010)2 = (?){10}$

(vi) $(1010111)2 = (?){10}$

4. दशमलव संख्या को अन्य नंबर सिस्टम में निम्नलिखित रूपांतरण कीजिए।

(i) $(54)_{10} = (?)_2$

(iv) $(889)_{10} = (?)_8$

(ii) $(120)_{10} = (?)_2$

(v) $(789){10} = (?){16}$

(iii) $(76)_{10} = (?)_8$

(vi) $(108){10} = (?){16}$

5. निम्नलिखित ऑक्टल संख्याओं को उनके समतुल्य दशमलव संख्याओं में व्यक्त कीजिए।

(i) 145

(ii) 6760

(iii) 455

(iv) 10.75

6. निम्नलिखित दशमलव संख्याओं को हेक्साडेसिमल संख्याओं में व्यक्त करें।

(i) 548

(ii) 4052

(iii) 58

(iv) 100.25

7. निम्नलिखित हेक्साडेसिमल संख्याओं को समतुल्य दशमलव संख्याओं में व्यक्त करें।

(i) 4A2

(ii) 9E1A

(iii) 6BD

(iv) 6C. 34

8. निम्नलिखित बाइनरी संख्याओं को ऑक्टल और हेक्साडेसिमल संख्याओं में बदलें।

(i) 1110001000

(iv) 1010.1001

(ii) 110110101

(iii) 1010100

9. निम्नलिखित ऑक्टल संख्याओं का बाइनरी समकक्ष लिखें।

(i) 2306

(ii) 5610

(iii) 742

(iv) 65.203

10. निम्नलिखित हेक्साडेसिमल संख्याओं की बाइनरी प्रतिनिधित्व लिखें।

(i) 4026

(ii) BCA1

(iii) 98E

(iv) 132.45

11. कंप्यूटर निम्नलिखित पाठ को कैसे समझता है? (संकेत: 7 बिट ASCII कोड).

(i) HOTS

(ii) Main

(iii) CaSe

12. हेक्साडेसिमल संख्या प्रणाली 16 अक्षरों $(0-9, A-F)$ का उपयोग करती है। इसका आधार मान लिखें।

  1. मान लीजिए $\mathrm{X}$ एक ऐसी संख्या प्रणाली है जिसमें केवल $\mathrm{B}$ प्रतीक हैं। इस संख्या प्रणाली का आधार मान लिखें।

  2. नीचे दिए गए वाक्यांश के प्रत्येक अक्षर के समतुल्य हेक्साडेसिमल और बाइनरी मान लिखें।

“हम सब एक"

15. यूनिकोड फ़ॉन्ट का उपयोग करके भारतीय भाषा में डिजिटल सामग्री तैयार करने का क्या लाभ है?

16. यूनिकोड का उपयोग करके भारतीय भाषा में टाइप करने के लिए आवश्यक चरणों का पता लगाएं और सूचीबद्ध करें।

17. शब्द ‘COMPUTER’ को ASCII का उपयोग करके एन्कोड करें और एन्कोड मान को बाइनरी मानों में बदलें।