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