Перевод из десятичной с.с. в шестнадцатиричную - C#

Узнай цену своей работы

Формулировка задачи:

Написать метод, входным параметром которого является целое число. Метод должен вернуть строку, содержащую символьную запись числа в шестнадцатиричной системе счисления. Собственно это условие! - как это сделать не понимаю. Знаю что числа меньше 9 не меняются, а все что > должно записываться числами 10 = А, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F Вот что удалось мне сделать: но оно не соответствует условию, и можно сделать намного проще но моих познаний не хватает для того чтобы это реализовать .
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
{
    class Program
    {
        static string[] chislo(int n)
        {
            int i;
            int b;
            int q;
            string[] s = new string[20];
            for (i = 0; n > 0; i++)
            {
                b = n;
                n = n / 16;
                q = b - n * 16;
 
                if (q > 9)
                {
                    if (q == 10)
                    {
                        s[i] = "A";
                        continue;
                    }
                    if (q == 11)
                    {
                        s[i] = "B";
                        continue;
                    }
                    if (q == 12)
                    {
                        s[i] = "C";
                        continue;
                    }
                    if (q == 13)
                    {
                        s[i] = "D";
                        continue;
                    }
                    if (q == 14)
                    {
                        s[i] = "E";
                        continue;
                    }
                    if (q == 15)
                        s[i] = "F";
                }
                else
                {
                    s[i] = Convert.ToString(q);
                }
            }
            for (i = i - 1; i >= 0; i--)
            {
                Console.Write(s[i]);
            }
            return s;
        }
        static void Main()
        {
            int a = int.Parse(Console.ReadLine());
            chislo(a);
            Console.ReadKey();
        }
    }
}

Решение задачи: «Перевод из десятичной с.с. в шестнадцатиричную»

textual
Листинг программы
string ToBase(int value, int @base)
{
    if (value < 0) throw new ArgumentOutOfRangeException("value");
    if (@base < 2 || @base > 36) throw new ArgumentOutOfRangeException("base");
 
    if (value < 2) return value.ToString();
 
    char[] chars = new char[(int)Math.Log(value, @base) + 1];
    int rem;
 
    for (int i = chars.Length - 1; i >= 0; i--) {
        value = Math.DivRem(value, @base, out rem);
        chars[i] = (char)(rem + (rem < 10 ? '0' : 'A' - 10));
    }
 
    return new string(chars);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы