لقد تم تعيينك للتو أستاذًا للرياضيات. سار أسبوعك الأول على ما يرام، لكن هناك شيء غريب في أسبوعك الثاني. المشكلة أن كل إجابة يقدّمها طلابك خاطئة! لحسن الحظ، مكّنتك مهاراتك في الرياضيات من تحديد المشكلة: إجابات الطلاب صحيحة فعلًا، لكنها جميعًا بالأساس 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.