🔬
🧬
🔭
🪐
🧪
← डैशबोर्ड पर वापस जाएँ
Font Size:

1. परिचय

कंप्यूटर एक डिजिटल मशीन है जो केवल दो अवस्थाओं - चालू (1) और बंद (0) - को समझती है। इन दो अंकों पर आधारित संख्या प्रणाली को बाइनरी संख्या प्रणाली (Binary Number System) कहते हैं। हमारे लिए मनुष्यों के लिए संख्याओं, अक्षरों, चित्रों और ध्वनि को बाइनरी (0 और 1) में परिवर्तित करने की प्रक्रिया को डेटा प्रतिनिधित्व (Data Representation) कहा जाता है। इस अध्याय में हम संख्या प्रणाली के प्रकार, संख्या रूपांतरण, बाइनरी अंकगणित, ASCII कोड तथा विभिन्न कोडिंग पद्धतियों का अध्ययन करेंगे।

2. संख्या प्रणाली (Number System)

संख्या प्रणाली वह विधि है जिसके द्वारा संख्याओं को व्यक्त किया जाता है। किसी भी संख्या प्रणाली में चार महत्वपूर्ण अवधारणाएँ होती हैं: आधार (Base/Radix), अंक (Digits), स्थानीय मान (Place Value) और दशमलव बिंदु। मुख्य संख्या प्रणालियाँ चार हैं:

  1. दशमलव (Decimal) प्रणाली: आधार 10, अंक 0 से 9 तक।
  2. बाइनरी (Binary) प्रणाली: आधार 2, अंक 0 और 1।
  3. ऑक्टल (Octal) प्रणाली: आधार 8, अंक 0 से 7 तक।
  4. हेक्साडेसिमल (Hexadecimal) प्रणाली: आधार 16, अंक 0 से 9 और अक्षर A (10), B (11), C (12), D (13), E (14), F (15)।

किसी संख्या प्रणाली का आधार ही उसकी पहचान है। उदाहरण के लिए, बाइनरी संख्या 101 को $(101)2$ तथा दशमलव संख्या 101 को $(101)$ लिखा जाता है।

स्थानीय मान की अवधारणा

किसी भी संख्या का मान उसके अंकों और उनके स्थानीय मान पर निर्भर करता है। किसी अंक का स्थानीय मान = अंक × (आधार)^(स्थिति का घातांक)। सबसे दाईं ओर का स्थान घातांक 0 से शुरू होता है। उदाहरण के लिए, $(1A5){16}$ में: $$1 \times 16^2 + A(10) \times 16^1 + 5 \times 16^0 = 256 + 160 + 5 = (421)$$

3. संख्या रूपांतरण (Number Conversion)

किसी अन्य आधार से दशमलव में रूपांतरण

प्रत्येक अंक को उसके स्थानीय मान के साथ गुणा करके जोड़ दिया जाता है। उदाहरण: $$(1101)2 = 1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 8 + 4 + 0 + 1 = (13)$$ $$(47)8 = 4 \times 8^1 + 7 \times 8^0 = 32 + 7 = (39)$$

दशमलव से बाइनरी में रूपांतरण (भाग विधि)

दशमलव संख्या को 2 से बार-बार भाग देते हैं और शेषफल (Remainder) को लिखते जाते हैं। शेषफलों को अंतिम भागफल से आरंभ करके उल्टे क्रम में पढ़ा जाता है। उदाहरण के लिए, $(13){10}$ को बाइनरी में बदलने पर: - 13 ÷ 2 = 6, शेष 1 - 6 ÷ 2 = 3, शेष 0 - 3 ÷ 2 = 1, शेष 1 - 1 ÷ 2 = 0, शेष 1 अतः $(13) = (1101)_2$।

भिन्नात्मक (Fractional) भाग का रूपांतरण

दशमलव बिंदु के बाद के भाग को आधार (2 या 8 या 16) से गुणा किया जाता है और प्राप्त पूर्णांक को लिखते जाते हैं। उदाहरण: $(0.625){10}$ को बाइनरी में: - 0.625 × 2 = 1.25 → पूर्णांक 1 - 0.25 × 2 = 0.5 → पूर्णांक 0 - 0.5 × 2 = 1.0 → पूर्णांक 1 अतः $(0.625) = (0.101)_2$।

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

बाइनरी अंकों को दाईं ओर से बाएँ क्रम में 3-3 (ऑक्टल के लिए) या 4-4 (हेक्साडेसिमल के लिए) के समूहों में बाँटा जाता है और प्रत्येक समूह को उसके समकक्ष मान में बदला जाता है। उदाहरण: $(110101)2$ को ऑक्टल में: 110 101 → 6 5 = $(65)_8$। $(110101)_2$ को हेक्साडेसिमल में: 0011 0101 → 3 5 = $(35)$।

4. बाइनरी अंकगणित (Binary Arithmetic)

बाइनरी जोड़ (Binary Addition)

बाइनरी जोड़ के नियम: - 0 + 0 = 0 - 0 + 1 = 1 - 1 + 0 = 1 - 1 + 1 = 0, कैरी 1 - 1 + 1 + 1 = 1, कैरी 1

उदाहरण: $(1011)_2 + (101)_2$ को जोड़ने पर हमें $(10000)_2$ प्राप्त होता है।

बाइनरी घटाव (Binary Subtraction)

बाइनरी घटाव के नियम: - 0 - 0 = 0 - 1 - 0 = 1 - 1 - 1 = 0 - 0 - 1 = 1, बॉरो (Borrow) 1

बाइनरी गुणा और भाग

बाइनरी गुणा दशमलव गुणा के समान है, बस यहाँ केवल 0 और 1 का उपयोग होता है। किसी बाइनरी संख्या को 2 से गुणा करने का सरल तरीका उसके अंत में एक 0 जोड़ देना है, और 2 से भाग करने के लिए अंतिम अंक हटा देना है।

5. संख्या प्रणाली में बिट, बाइट और वर्ड

n बिट में हम $2^n$ भिन्न मान प्रदर्शित कर सकते हैं। उदाहरण के लिए, 4 बिट में $2^4 = 16$ मान (0 से 15 तक) प्रदर्शित हो सकते हैं। यही कारण है कि एक बाइट (8 बिट) में $2^8 = 256$ भिन्न मान प्रदर्शित होते हैं।

6. कोडिंग पद्धतियाँ (Coding Schemes)

कंप्यूटर में अक्षरों, अंकों और विशेष प्रतीकों को बाइनरी रूप में प्रदर्शित करने के लिए कोडिंग पद्धतियों का उपयोग होता है।

ASCII (American Standard Code for Information Interchange)

यह सबसे प्रचलित कोडिंग पद्धति है। मानक ASCII 7 बिट का उपयोग करती है, जिससे 128 ($2^7$) वर्ण प्रदर्शित होते हैं। बाद में विस्तारित ASCII (Extended ASCII) 8 बिट (256 वर्ण) का उपयोग करती है। कुछ महत्वपूर्ण मान: - 'A' = 65, 'B' = 66, 'C' = 67 ... (बड़े अक्षर) - 'a' = 97, 'b' = 98 ... (छोटे अक्षर) - '0' = 48, '1' = 49 ... (अंक) - स्पेस = 32

ISCII (Indian Script Code for Information Interchange)

भारतीय भाषाओं (हिंदी, बांग्ला, गुजराती आदि) के वर्णों के लिए बनाई गई 8-बिट कोडिंग पद्धति। यह भारतीय मानक ब्यूरो (BIS) द्वारा विकसित की गई थी।

यूनिकोड (Unicode)

यूनिकोड एक अंतर्राष्ट्रीय मानक है जो विश्व की सभी भाषाओं के वर्णों को अद्वितीय संख्याएँ प्रदान करता है। यह 8 बिट, 16 बिट या 32 बिट में हो सकता है। UTF-8, UTF-16 और UTF-32 इसके प्रचलित रूप हैं। यूनिकोड ASCII और ISCII दोनों का विस्तार है और इसमें सभी वर्णों का प्रतिनिधित्व संभव है।

7. डेटा प्रतिनिधित्व की व्यावहारिक अवधारणाएँ

कंप्यूटर में वास्तविक डेटा (जैसे तापमान 27.5, लोगों की संख्या 1500) को संग्रहीत करने के लिए निश्चित संख्या में बिट आवंटित किए जाते हैं। पूर्णांकों (Integers) को सामान्यतः 16, 32 या 64 बिट में तथा वास्तविक संख्याओं को वैज्ञानिक संकेतन (Mantissa और Exponent) के रूप में संग्रहीत किया जाता है। ऋणात्मक संख्याओं के लिए सामान्यतः 2 का पूरक (2's Complement) विधि का उपयोग होता है, जो घटाव को जोड़ में बदल देती है।

2 का पूरक (2's Complement)

किसी बाइनरी संख्या का 1 का पूरक प्राप्त करने के लिए सभी बिट उलट दिए जाते हैं (0 को 1 और 1 को 0)। फिर परिणाम में 1 जोड़ने पर 2 का पूरक प्राप्त होता है। उदाहरण: $(0110)_2$ का 1 का पूरक $(1001)_2$ है और 2 का पूरक $(1010)_2$ है। 2 के पूरक का सबसे बड़ा लाभ यह है कि घटाव को जोड़ के रूप में निष्पादित किया जा सकता है।

8. डेटा प्रतिनिधित्व और पाइथन

पाइथन में हम संख्याओं को विभिन्न प्रणालियों में आसानी से प्रदर्शित और रूपांतरित कर सकते हैं:

# दशमलव संख्या को बाइनरी में बदलना
print(bin(13))      # 0b1101
print(oct(39))      # 0o47
print(hex(421))     # 0x1a5

# बाइनरी को दशमलव में बदलना
print(int("1101", 2))   # 13
print(int("47", 8))     # 39
print(int("1a5", 16))   # 421

# वर्ण को ASCII मान में बदलना
print(ord("A"))     # 65
print(chr(97))      # 'a'

त्वरित पुनरावृत्ति तालिकाएँ

तालिका 1: संख्या प्रणालियों की तुलना

संख्या प्रणाली आधार प्रयुक्त अंक उदाहरण
दशमलव (Decimal) 10 0-9 142
बाइनरी (Binary) 2 0, 1 1011
ऑक्टल (Octal) 8 0-7 217
हेक्साडेसिमल (Hexadecimal) 16 0-9, A-F 8F2

तालिका 2: महत्वपूर्ण ASCII मान

वर्ण ASCII दशमलव बाइनरी
0 48 0110000
A 65 1000001
Z 90 1011010
a 97 1100001
z 122 1111010

तालिका 3: कोडिंग पद्धतियों की तुलना

पद्धति बिट उपयोग
मानक ASCII 7 बिट 128 वर्ण
विस्तारित ASCII 8 बिट 256 वर्ण
ISCII 8 बिट भारतीय भाषाएँ
यूनिकोड (UTF-8) 8-32 बिट सभी विश्व भाषाएँ

माइंड मैप

graph TD A["डेटा प्रतिनिधित्व"] --> B["संख्या प्रणाली"] A --> C["संख्या रूपांतरण"] A --> D["बाइनरी अंकगणित"] A --> E["कोडिंग पद्धतियाँ"] B --> F["दशमलव (10)"] B --> G["बाइनरी (2)"] B --> H["ऑक्टल (8)"] B --> I["हेक्साडेसिमल (16)"] C --> J["भाग विधि"] C --> K["गुणा विधि"] E --> L["ASCII"] E --> M["ISCII"] E --> N["यूनिकोड"]

महत्वपूर्ण आरेख (SVG)

दशमलव (आधार 10) भाग विधि गुणा विधि समूहीकरण बाइनरी (2) ऑक्टल (8) हेक्साडेसिमल (16) कंप्यूटर में केवल 0 और 1 Golden Rule: आधार ही पहचान है
बिट (0 या 1) 4 बिट = निबल 8 बिट = बाइट 1 बाइट = 1 वर्ण (जैसे A) n बिट = 2^n मान प्रदर्शित 4 बिट में 16 मान (0-15) 8 बिट में 256 मान (0-255) ASCII: A=65, a=97, 0=48 स्वर्ण नियम: 8 बिट = 1 बाइट

सामान्य गलतियाँ

  1. छात्र अक्सर बाइनरी संख्या को पढ़ते समय स्थानीय मान का ध्यान नहीं रखते; याद रखें दाईं ओर का अंक $2^0$ से शुरू होता है।
  2. दशमलव से बाइनरी रूपांतरण में शेषफलों को उल्टे क्रम में पढ़ने की बजाय सीधे क्रम में पढ़ लिया जाता है, जो गलत उत्तर देता है।
  3. ऑक्टल से दशमलव रूपांतरण में अंक 8 या 9 का प्रयोग करना गलत है, क्योंकि ऑक्टल प्रणाली में अंक 0 से 7 तक ही होते हैं।
  4. हेक्साडेसिमल में अक्षरों का मान भूल जाना: A=10, B=11, C=12, D=13, E=14, F=15 याद रखना आवश्यक है।
  5. बाइनरी जोड़ में 1 + 1 को 2 नहीं, बल्कि 0 के साथ कैरी 1 लिखना चाहिए।
  6. ASCII मानों में 'a' और 'A' के मान में अंतर (97 और 65) अक्सर भ्रम पैदा करता है; छोटे अक्षर का मान 32 अधिक होता है।
  7. भिन्नात्मक रूपांतरण में पूर्णांक भाग और भिन्न भाग की विधियाँ (भाग और गुणा) परस्पर बदल देते हैं, जो सामान्य भ्रांति है।

परीक्षा युक्तियाँ

  1. रूपांतरण के प्रश्नों में हमेशा अंतिम उत्तर के साथ आधार (जैसे $(1101)_2$) अवश्य लिखें, ताकि उत्तर स्पष्ट हो।
  2. भाग विधि से बाइनरी रूपांतरण करते समय शेषफलों को नीचे से ऊपर की ओर पढ़ना याद रखें।
  3. बाइनरी से ऑक्टल और हेक्साडेसिमल के समूहीकरण में बाईं ओर शून्य जोड़ने का नियम न भूलें।
  4. ASCII मानों के प्रश्नों के लिए 65 (A), 97 (a) और 48 (0) को मूल मानकर आगे के मान निकालें।
  5. 2 के पूरक के प्रश्न में पहले 1 का पूरक (बिट उलटना) फिर 1 जोड़ना याद रखें।
  6. मेमोरी इकाइयों और बिट-बाइट के प्रश्नों में $2^n$ की गणना सावधानी से करें।
  7. घातांक और आधार की परिभाषा को स्पष्ट करें; आधार = प्रयुक्त अंकों की संख्या।

निष्कर्ष

डेटा प्रतिनिधित्व कंप्यूटर विज्ञान की वह मूलभूत इकाई है जिसके द्वारा यह समझा जा सकता है कि कंप्यूटर केवल 0 और 1 के संयोजन से ही सभी सूचनाओं को संग्रहीत और प्रदर्शित करता है। संख्या प्रणालियों के रूपांतरण, बाइनरी अंकगणित तथा ASCII, ISCII और यूनिकोड जैसी कोडिंग पद्धतियों की समझ विद्यार्थी को कंप्यूटर की आंतरिक कार्यप्रणाली से परिचित कराती है। यह अध्याय बूलियन लॉजिक और प्रोग्रामिंग की नींव रखता है, क्योंकि प्रोग्राम में उपयोग होने वाला प्रत्येक डेटा अंततः बाइनरी रूप में ही संग्रहीत होता है।