Перевести числа в десятичную систему счисления, сложить и вывести в шестнадцатиричном виде - C#
Формулировка задачи:
Переведите следующие числа в десятичную систему счисления: а) 1100111011(2); б) 10000000111(2); в) 10110101,1(2); г) 100000110,10101(2); д) 671,24(8); е) 41A,6(16).
Сложите числа под номером а) и д). Результат представьте в шестнадцатеричной форме
Будьте добры, люди, напишите консольное приложение, которое это производит.
Решение задачи: «Перевести числа в десятичную систему счисления, сложить и вывести в шестнадцатиричном виде»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Notations
- {
- class Program
- {
- static void Main(string[] args)
- {
- double result = ToDecimal("1100111011", 2) + ToDecimal("671,24", 8);
- string[] resultParts = result.ToString().Split('.');
- Console.WriteLine("result : {0:X},{1:X}", int.Parse(resultParts[0]), int.Parse(resultParts[1]));
- Console.ReadLine();
- }
- public static double ToDecimal(string binary, byte notation)
- {
- char[] intPart;
- int counter = 0;
- if (binary.Contains(','))
- {
- string[] value = binary.Split(',');
- intPart = value[0].ToArray();
- char[] realPart = value[1].ToArray();
- counter = 0;
- double result = intPart.Reverse().ToList().
- Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
- counter = 0;
- double y = realPart.Reverse().
- Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
- result += y / Math.Pow(10, y.ToString().Length);
- return result;
- }
- else
- {
- intPart = binary.ToArray();
- counter = 0;
- return (int)intPart.Reverse().
- Select(x => HexNumbersToDecimel(x) * Math.Pow(notation, counter++)).Sum();
- }
- }
- private static int HexNumbersToDecimel(char symbol)
- {
- if (char.IsNumber(symbol))
- return int.Parse(symbol.ToString());
- else
- switch (char.ToUpper(symbol))
- {
- case 'A': return 10;
- break;
- case 'B': return 11;
- break;
- case 'C': return 12;
- break;
- case 'D': return 13;
- break;
- case 'E': return 14;
- break;
- case 'F': return 15;
- break;
- }
- return 0;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д