संख्या निरूपण व कंप्यूटर अंकगणित
आधार, तथा एक प्रतिरूप को दो प्रकार से पढ़ना
स्थानीय आधार-r संख्या अंकों व r की घातों के गुणनफलों का योग है, और द्विआधारी, अष्टक व षोडश आधार के बीच रूपांतरण में अंकगणित की आवश्यकता ही नहीं: अष्टक अंक तीन बिट हैं, षोडश अंक चार बिट, अतः 10110101 का समूहन 1011 0101 = षोडश में B5 तथा 10 110 101 = अष्टक में 265 है। दशमलव से व तक रूपांतरण ही एकमात्र दिशा है जिसमें श्रम लगता है — पूर्णांक भाग हेतु आधार से बार-बार भाग, भिन्न भाग हेतु बार-बार गुणा।
| व्याख्या | 10110101 का अर्थ | कैसे पढ़ा जाता है |
|---|---|---|
| अचिह्नित | 181 | 128 + 32 + 16 + 4 + 1 |
| दो का पूरक | −75 | शीर्ष बिट सेट, अतः निषेध करें: प्रतिलोम 01001010, 1 जोड़ें → 01001011 = 75 |
| चिह्न व परिमाण | −53 | चिह्न बिट 1, परिमाण 0110101 = 53 |
| एक का पूरक | −74 | प्रतिलोम 01001010 = 74, ऋणात्मक |
वहन अतिप्रवाह नहीं है
100 व 50 को 8-बिट मानों के रूप में जोड़ें: 01100100 + 00110010 = 10010110। शीर्ष बिट से कोई वहन बाहर नहीं जाता, अतः अचिह्नित अंकगणित संतुष्ट है — 150 एक बाइट में आ जाता है। उसी परिणाम को चिह्नित पढ़ें तो वह −106 है, जो गलत है: दो धन संख्याओं का योग ऋण नहीं हो सकता। अतः एक ही योग से चिह्नित संक्रिया अतिप्रवाहित हुई और अचिह्नित नहीं, और जो नियम वहन-निर्गम को "वही" अतिप्रवाह ध्वजा मानता है वह इसे उलट देता है।
| ध्वजा | कब सेट | किसके लिए |
|---|---|---|
| वहन | सर्वाधिक महत्वपूर्ण बिट से वहन बाहर जाता है | केवल अचिह्नित परिणाम |
| अतिप्रवाह | MSB में आने वाला वहन उससे बाहर जाने वाले से भिन्न | केवल चिह्नित परिणाम |
स्थिर व चल बिंदु, तथा IEEE 754
स्थिर-बिंदु संख्या द्विआधारी बिंदु को सहमत स्थान पर रखती है, अतः निरूपणीय मानों के बीच अंतराल अचर होता है और परिसर संकीर्ण। चल-बिंदु संख्या चिह्न, घातांक व सार्थकांश संचित करती है, अतः अंतराल परिमाण के साथ बढ़ता है — वही सौदा जिसके लिए यह संरूप बना है। IEEE 754 एकल परिशुद्धता अपने 32 बिट 1 चिह्न, 8 घातांक, 23 सार्थकांश में व्यय करती है, घातांक 127 से अभिनत संचित और सामान्यीकृत सार्थकांश का अग्रणी 1 संचित न होकर अंतर्निहित, जो परिशुद्धता का 24वाँ बिट निःशुल्क देता है।
| चरण | परिणाम |
|---|---|
| चिह्न | ऋणात्मक → 1 |
| द्विआधारी में परिमाण | 6.75 = 110.11 |
| सामान्यीकरण | 1.1011 × 2² |
| घातांक क्षेत्र | 2 + 127 = 129 = 10000001 |
| सार्थकांश (अग्रणी 1 छोड़कर) | 1011 तत्पश्चात् उन्नीस शून्य |
| पूर्ण प्रतिरूप | 1 10000001 10110000000000000000000 |
मुख्य बिंदु
- व्याख्या के बिना बिट-प्रतिरूप का कोई अर्थ नहीं — 10110101 अचिह्नित में 181 व दो के पूरक में −75 है।
- दो के पूरक के n बिट −2n−1 से 2n−1−1 चलते हैं: एक शून्य, एक अतिरिक्त ऋण, और कोई +2n−1 नहीं।
- प्रतिलोम कर एक जोड़कर निषेध करें; सर्वाधिक ऋण संख्या का निषेध उसे ही लौटाता है।
- वहन अचिह्नित अंकगणित का है, अतिप्रवाह चिह्नित का — एक योग दोनों में कोई एक, दोनों या कोई नहीं उठा सकता है।
- चिह्नित अतिप्रवाह हेतु समान चिह्न के प्रचालक व विपरीत चिह्न का परिणाम चाहिए — वहन नहीं, तीन चिह्न-बिट जाँचें।
- IEEE 754 एकल: 1 + 8 + 23 बिट, घातांक 127 से अभिनत, अग्रणी सार्थकांश 1 अंतर्निहित, संचित नहीं।
- दशमलव भिन्न द्विआधारी में यथार्थ केवल तब है जब उसका हर दो की घात हो — 0.1 कभी नहीं।
- चल-बिंदु अंतराल परिमाण के साथ बढ़ता है, अतः चल-बिंदु योग साहचर्य नहीं है।
अभ्यास प्रश्न (8)
उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।
8-बिट प्रतिरूप 10110101, दो के पूरक पूर्णांक के रूप में, है:
उत्तर देखें
उत्तर: B — −75
शीर्ष बिट 1 है, अतः मान ऋणात्मक है और उसका परिमाण प्रतिरूप का दो का पूरक है: 10110101 को प्रतिलोम कर 01001010 और एक जोड़कर 01001011 = 75, अतः मान −75 है। प्रत्येक अन्य विकल्प वही प्रतिरूप भिन्न परिपाटी में पढ़ा गया है, और यही प्रश्न का अभिप्राय है — 181 अचिह्नित पाठ है, −53 चिह्न व परिमाण (चिह्न बिट सहित 0110101 = 53), तथा −74 एक का पूरक (केवल प्रतिलोम)। प्रतिरूप अपनी व्याख्या स्वयं नहीं रखता, और जो प्रश्न कोई व्याख्या नहीं बताता वह प्रायः ठीक यही जाँच रहा है।दो 8-बिट मान 01100100 व 00110010 जोड़े जाते हैं। परिणाम कौन-सी ध्वजाएँ उठाता है?
उत्तर देखें
उत्तर: B — केवल चिह्नित अतिप्रवाह
मान 100 व 50 हैं, योग 150 = 10010110। सर्वाधिक महत्वपूर्ण बिट से कोई वहन बाहर नहीं जाता, अतः वहन ध्वजा निर्मुक्त है और अचिह्नित परिणाम 150 एक बाइट में पूर्णतः सही है। परंतु चिह्नित पढ़ने पर दो धन प्रचालकों ने ऋण परिणाम दिया है (10010110 = −106), अतः चिह्नित अतिप्रवाह सेट है। सम्पूर्ण शिक्षा यही है: दोनों ध्वजाएँ भिन्न प्रश्नों का उत्तर देती हैं और एक योग किसी एक को दूसरे के बिना उठा सकता है। विकल्प C वह है जो अभ्यर्थी "अतिप्रवाह का अर्थ परिणाम नहीं समाया" सीखकर, किस व्याख्या में नहीं समाया पूछे बिना चुनता है।8-बिट दो के पूरक में, −128 का निषेध देता है:
उत्तर देखें
उत्तर: C — −128
−128 है 10000000। प्रतिलोम देता है 01111111 और एक जोड़ने पर पुनः 10000000, अतः निषेध −128 लौटाता है। कारण अंकगणितीय चूक नहीं, निरूपण की असमता है: 8 बिट −128 से +127 रखते हैं, अतः +128 का कोई कूटन ही नहीं और संक्रिया के पास पहुँचने हेतु कोई सही स्थान नहीं। हार्डवेयर अतिप्रवाह ध्वजा उठाता है; जो मान वह देता है वही निवेश है। विकल्प A गणितीय रूप से सही और निरूपण की दृष्टि से असंभव उत्तर है, ठीक इसीलिए वह भ्रामक है।एक चिह्नित पूर्णांक दो के पूरक के 12 बिट में संचित है। वह अधिकतम कौन-सा धन मान रख सकता है?
संख्यात्मक उत्तर — मान टाइप करें।
उत्तर देखें
उत्तर: 2047
n बिट के साथ परिसर −2n−1 से 2n−1−1 है, अतः 12 बिट धन पक्ष पर 2¹¹ − 1 = 2047 व ऋण पक्ष पर −2048 तक पहुँचते हैं। सर्वाधिक सामान्य गलत उत्तर 2048 है, घात याद रखकर उस −1 को भूलने से जो एकल शून्य कूटन बाध्य करता है। परिसर को n के बजाय घातांक n − 1 से पढ़ना उसी आदत का दूसरा आधा है: वह 2¹¹ है, 2¹² नहीं, क्योंकि बारह में से एक बिट चिह्न पर व्यय होता है।IEEE 754 एकल परिशुद्धता में −6.75 का घातांक क्षेत्र है:
उत्तर देखें
उत्तर: A — 10000001
6.75 द्विआधारी में 110.11 है, जो 1.1011 × 2² पर सामान्यीकृत होता है, अतः वास्तविक घातांक 2 है। क्षेत्र उसे 127 से अभिनत संचित करता है, जिससे 2 + 127 = 129 = 10000001। विकल्प B अनभिनत घातांक सीधे क्षेत्र में लिखा गया है, जो इस विषय की एकमात्र सर्वाधिक सामान्य त्रुटि है; विकल्प D स्वयं अभिनति है, जो शून्य घातांक (1 व 2 के बीच के मान) का क्षेत्र है। चिह्न बिट 1 है और सार्थकांश 1011 तत्पश्चात् उन्नीस शून्य, अग्रणी 1 संचित न होकर अंतर्निहित।IEEE 754 एकल-परिशुद्धता चल-बिंदु के विषय में निम्नलिखित में कौन सत्य हैं? (एक से अधिक सही हो सकते हैं।)
उत्तर देखें
उत्तर: A — योग साहचर्य नहीं है; C — क्रमागत निरूपणीय मानों के बीच अंतर परिमाण के साथ बढ़ता है
A व C सत्य हैं, और वे एक ही तथ्य दो बार हैं। चूँकि घातांक अंतराल को मापित करता है, क्रमागत चल-बिंदु बड़े परिमाणों पर दूर-दूर व छोटे पर निकट होते हैं (C) — और ठीक इसीलिए बड़ी संख्या में छोटी जोड़ने पर वह पूर्णतः बट्टे में जा सकती है, जिससे (a + b) + c, a + (b + c) से भिन्न हो जाता है (A)। B असत्य है: 0.1 आवर्ती द्विआधारी भिन्न है, क्योंकि उसका हर दो की घात नहीं, और वह निकटतम 24-बिट सार्थकांश के रूप में संचित होता है। D असत्य है और संरूप की सर्वाधिक चतुर बचत है — सामान्यीकृत सार्थकांश सदा 1 से आरंभ होता है, अतः वह बिट अंतर्निहित है, जो 23 बिट संचय से परिशुद्धता का 24वाँ बिट देता है।द्विआधारी संख्या 10110101 क्रमशः षोडश आधार व अष्टक में है:
उत्तर देखें
उत्तर: A — B5 व 265
दाएँ से समूह बनाएँ, षोडश हेतु चार बिट: 1011 0101 = B 5, अतः B5। अष्टक हेतु तीन बिट, बाएँ समूह में पूरण: 010 110 101 = 2 6 5, अतः 265। किसी भी दिशा में अंकगणित आवश्यक नहीं, और यही व्यावहारिक बिंदु है — षोडश व अष्टक द्विआधारी की संक्षिप्त वर्तनी के रूप में हैं, दशमलव से होकर रूपांतरित करने योग्य पृथक् संख्या-पद्धतियों के रूप में नहीं। विकल्प D षोडश अंकों को उलट देता है, जो बिट-संख्या चार का गुणज न होने पर बाएँ से समूह बनाने से मिलता है; पूरण सदा बाईं ओर लगता है।दशमलव संख्या 45 पैक्ड BCD में संचित है। उन्हीं आठ बिटों को साधारण अचिह्नित द्विआधारी संख्या पढ़ने पर मिलता है:
उत्तर देखें
उत्तर: B — 69
पैक्ड BCD प्रत्येक दशमलव अंक को अपने चार बिटों में संचित करता है, अतः 45 बनता है 0100 0101। उसे एक द्विआधारी संख्या पढ़ने पर वह प्रतिरूप 64 + 4 + 1 = 69 है। सीधा द्विआधारी 45 को 00101101 के रूप में संचित करता, पूर्णतः भिन्न प्रतिरूप। यह इस अध्याय की व्याख्या-समस्या का सर्वाधिक व्यावहारिक रूप है: BCD परिसर व्यर्थ करता है — चार बिट सोलह मान रखते हैं और BCD दस प्रयोग करता है — और बदले में कुछ विशिष्ट पाता है, कि दशमलव अंक भाग के बिना प्रदर्शन में व से रूपांतरित होते हैं। विकल्प A वह है जो अभ्यर्थी यह मानकर देता है कि संचित संख्या, उस पर कोई भी परिपाटी लगे, वही पढ़ी जाएगी — और यही एक मान्यता है जिसे तोड़ने हेतु यह सम्पूर्ण खंड है।