شما همین تازه به عنوان استاد ریاضیات استخدام شدهاید. هفتهی اول خوب پیش رفت، اما در هفتهی دوم یک جای کار میلنگد. مشکل این است که هر پاسخی که دانشجویانتان میدهند غلط است! خوشبختانه مهارتهای ریاضیتان به شما کمک کرده تا مشکل را پیدا کنید: پاسخهای دانشجویان درست هستند، اما همهشان در مبنای ۲ (دودویی) نوشته شدهاند! شگفتآور است که معلوم شده هر هفته دانشجویان از مبنای دیگری استفاده میکنند. برای اینکه بتوانید سریع پاسخهای دانشجویان را بررسی کنید، ابزاری میسازید که بین مبناها تبدیل انجام میدهد.
دنبالهای از رقمها در یک مبنا را، که نمایندهی یک عدد است، به دنبالهای از رقمها در مبنای دیگر تبدیل کنید، بهگونهای که نمایندهی همان عدد باشد.
تبدیل را خودتان پیادهسازی کنید. برای انجام تبدیل، از راه دیگری استفاده نکنید.
در نمایش مکانی، یک عدد در مبنای b را میتوان بهصورت ترکیب خطی توانهای b فهمید.
عدد ۴۲، در مبنای ۱۰، یعنی:
(4 × 10¹) + (2 × 10⁰)
عدد ۱۰۱۰۱۰، در مبنای ۲، یعنی:
(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)
عدد ۱۱۲۰، در مبنای ۳، یعنی:
(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)
بله. آن سه عدد بالا دقیقاً یکساناند. تبریک!
| ثبات | کاربرد | نوع | توضیح |
|---|---|---|---|
$a0 |
ورودی | عدد صحیح | تعداد ارقام ورودی |
$a1 |
ورودی | عدد صحیح | مبنای ارقام ورودی |
$a2 |
ورودی | عدد صحیح | مبنای ارقام خروجی |
$a3 |
ورودی/خروجی | آدرس | آرایهی قابل بازنویسی از کلمههای رقمی |
$v0 |
خروجی | عدد صحیح | تعداد ارقام خروجی؛ اگر ورودی نامعتبر باشد، -1 |
$t0-9 |
موقت | هر نوع | برای ذخیرهسازی موقت استفاده میشود |
در Exercism ثبتنام کنید تا MIPS Assembly را همراه با 70 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.