Перевести числа в десятичную систему счисления, сложить и вывести в шестнадцатиричном виде - C#

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

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

Переведите следующие числа в десятичную систему счисления: а) 1100111011(2); б) 10000000111(2); в) 10110101,1(2); г) 100000110,10101(2); д) 671,24(8); е) 41A,6(16). Сложите числа под номером а) и д). Результат представьте в шестнадцатеричной форме Будьте добры, люди, напишите консольное приложение, которое это производит.

Решение задачи: «Перевести числа в десятичную систему счисления, сложить и вывести в шестнадцатиричном виде»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Notations
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             double result = ToDecimal("1100111011", 2) + ToDecimal("671,24", 8);
  14.             string[] resultParts = result.ToString().Split('.');
  15.  
  16.             Console.WriteLine("result : {0:X},{1:X}", int.Parse(resultParts[0]), int.Parse(resultParts[1]));
  17.             Console.ReadLine();
  18.         }
  19.  
  20.         public static double ToDecimal(string binary, byte notation)
  21.         {
  22.             char[] intPart;
  23.             int counter = 0;
  24.             if (binary.Contains(','))
  25.             {
  26.                 string[] value = binary.Split(',');
  27.                 intPart = value[0].ToArray();
  28.                 char[] realPart = value[1].ToArray();
  29.                 counter = 0;
  30.                 double result = intPart.Reverse().ToList().
  31.                     Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
  32.                 counter = 0;
  33.                 double y = realPart.Reverse().
  34.                     Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
  35.                 result += y / Math.Pow(10, y.ToString().Length);
  36.                 return result;
  37.             }
  38.             else
  39.             {
  40.                 intPart = binary.ToArray();
  41.                 counter = 0;
  42.                 return (int)intPart.Reverse().
  43.                     Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
  44.             }
  45.         }
  46.         private static int HexNumbersToDecimel(char symbol)
  47.         {
  48.             if (char.IsNumber(symbol))
  49.                 return int.Parse(symbol.ToString());
  50.             else
  51.                 switch (char.ToUpper(symbol))
  52.                 {
  53.                     case 'A': return 10;
  54.                         break;
  55.                     case 'B': return 11;
  56.                         break;
  57.                     case 'C': return 12;
  58.                         break;
  59.                     case 'D': return 13;
  60.                         break;
  61.                     case 'E': return 14;
  62.                         break;
  63.                     case 'F': return 15;
  64.                         break;
  65.                 }
  66.             return 0;
  67.         }
  68.     }
  69. }

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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