आपको अभी-अभी गणित के प्रोफेसर की नौकरी मिली है। आपका पहला सप्ताह अच्छा गुज़रा, लेकिन दूसरे सप्ताह में कुछ गड़बड़ है। समस्या यह है कि आपके विद्यार्थियों द्वारा दिया गया हर उत्तर गलत है! सौभाग्य से, आपके गणित के कौशल से आप यह पहचान पाए कि असली दिक्कत कहाँ है: विद्यार्थियों के उत्तर वास्तव में सही हैं, लेकिन वे सब आधार 2 (बाइनरी) में हैं! हैरानी की बात यह है कि हर सप्ताह विद्यार्थी कोई अलग आधार इस्तेमाल करते हैं। इसके लिए कि आप विद्यार्थियों के उत्तर जल्दी जाँच सकें, आप एक टूल बनाएँगे जो संख्याओं को एक आधार से दूसरे आधार में बदल देता है।
एक आधार में लिखे अंकों के क्रम को, जो एक संख्या दर्शाता है, दूसरे आधार के अंकों के क्रम में बदलिए, जो वही संख्या दर्शाता है।
इस रूपांतरण को खुद लागू करने की कोशिश कीजिए। रूपांतरण करने के लिए किसी और चीज़ का इस्तेमाल न कीजिए।
स्थानीय मान पद्धति में b आधार वाली किसी संख्या को b की घातों के रैखिक संयोजन के रूप में समझा जा सकता है।
संख्या 42, आधार 10 में, का अर्थ है:
(4 × 10¹) + (2 × 10⁰)
संख्या 101010, आधार 2 में, का अर्थ है:
(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)
संख्या 1120, आधार 3 में, का अर्थ है:
(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)
हाँ। ऊपर लिखी ये तीनों संख्याएँ बिल्कुल एक ही हैं। बधाई हो!
| रजिस्टर | उपयोग | प्रकार | विवरण |
|---|---|---|---|
$a0 |
इनपुट | पूर्णांक | इनपुट अंकों की संख्या |
$a1 |
इनपुट | पूर्णांक | इनपुट अंकों का आधार |
$a2 |
इनपुट | पूर्णांक | आउटपुट अंकों का आधार |
$a3 |
इनपुट/आउटपुट | पता | अंकों वाले शब्दों का ऐसा ऐरे जिसे बदला जा सकता है |
$v0 |
आउटपुट | पूर्णांक | आउटपुट अंकों की संख्या, इनपुट अमान्य हो तो -1 |
$t0-9 |
अस्थायी | कोई भी | अस्थायी भंडारण के लिए इस्तेमाल किए जाते हैं |
Exercism पर साइन अप कीजिए और MIPS Assembly को 70 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।