Перевод дробной части числа из десятичной системы счисления в любую другую систему счисления - C#

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

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

Здравствуйте как перевести дробной части числа из десятичной системы счисления в любую другую систему счисления. При переводе целых частей выходит все просто
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.  
  4. string text="5";
  5. string test;
  6. test= Convert.ToString(Convert.ToInt32(text, 10), 2);
  7. Console.WriteLine("{0}", test);
  8. Console.ReadLine();
  9. }
а как сделать с дробными

Решение задачи: «Перевод дробной части числа из десятичной системы счисления в любую другую систему счисления»

textual
Листинг программы
  1. static void Main(string[] args)
  2.         {
  3.             //Входная строка
  4.             string text;
  5. text1 = Console.ReadLine();
  6.             //Преобразование в double
  7.             double text1;
  8.             text1 = Convert.ToDouble(text);
  9.             Console.WriteLine("{0}", text1);
  10.             //Воруем целую часть
  11.             string zel;
  12.             zel = Convert.ToString(Convert.ToInt32(Math.Truncate(text1)), 2);
  13.             int zel1 = Convert.ToInt32(Math.Truncate(text1));
  14.             Console.WriteLine("{0}", zel, zel1);
  15.             //Воруем дробную часть
  16.             double text2;
  17.             text2 = text1 - Math.Truncate(text1);
  18.             Console.WriteLine("{0}", text2);
  19.  
  20.             //Фокус покус это цикл
  21.             int cc;
  22.             Console.WriteLine("Система счисления");
  23.             cc = Convert.ToInt32(Console.ReadLine());
  24.             double[] asd = new double[10];
  25.             asd[0] = text2;
  26.  
  27.             string drob = null;
  28.  
  29.             for (int i = 1; i < 10; i++)
  30.             {
  31.                 switch (cc)
  32.                 {
  33.                     case 2:
  34.                         asd[i] = (2 * asd[i - 1]) - Math.Truncate(asd[i - 1] * 2);
  35.                         int bin = Convert.ToInt32(Math.Truncate(asd[i - 1] * 2));
  36.                         Console.WriteLine("bin={0}", bin);
  37.                         drob += bin;
  38.                         break;
  39.                     case 8:
  40.                         asd[i] = (8 * asd[i - 1]) - Math.Truncate(asd[i - 1] * 8);
  41.                         double oct = Math.Truncate(asd[i - 1] * 8);
  42.                         Console.WriteLine("oct={0}", oct);
  43.                         drob += oct;
  44.                         break;
  45.                     case 16:
  46.                         asd[i] = (16 * asd[i - 1]) - Math.Truncate(asd[i - 1] * 16);
  47.                         string hex;
  48.                         hex = Convert.ToString(Math.Truncate(asd[i - 1] * 16));
  49.  
  50.                         int ze;
  51.                         ze = Convert.ToInt32(hex);
  52.  
  53.                         switch (ze)
  54.                         {
  55.                             case 10:
  56.                                 hex = "A";
  57.                                 break;
  58.                             case 11:
  59.                                 hex = "B";
  60.                                 break;
  61.                             case 12:
  62.                                 hex = "C";
  63.                                 break;
  64.                             case 13:
  65.                                 hex = "D";
  66.                                 break;
  67.                             case 14:
  68.                                 hex = "E";
  69.                                 break;
  70.                             case 15:
  71.                                 hex = "F";
  72.                                 break;
  73.                             default:
  74.                                 break;
  75.                         }
  76.                         Console.WriteLine("hex={0}", hex);
  77.                         drob += hex;
  78.                         break;
  79.                     default:
  80.                         break;
  81.  
  82.                 }
  83.             }
  84.  
  85.  
  86.             Console.WriteLine("{0}.{1}", zel, drob);
  87.             Console.ReadLine();
  88.         }

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы