Сложение двоичных чисел - C#

  1. Нужно сложить 2 двоичных числа. Написал класс с двумя методами: DecimalToBinary() - преобразует десятичное число в двоичное. BinaryToDecimal() - обратное действие. каждый по отдельности работает правильно, но вот этот код:


textual

Код:

public double BinaryToDecimalSystem(double digit)
{ 
    double result = 0;
    bool isPoint = false;
    bool positive = true;
    int point_num = 0;
    string digitStr = digit.ToString(); 
    string real = "", fractional = "";
 
    if (digit < 0)
    {
        positive = false;
        digit = Math.Abs(digit);
    }
 
    //проверяем есть ли точка, если есть значит число не целое. 
    for (int i = 0; i < digitStr.Length; i++)
    {
        if (digitStr[i] == ',')
        {
            isPoint = true;
            point_num = i;
            break;
        }
    }
 
    if (!isPoint)
    {
        result += CalculatePow(digitStr, digitStr.Length - 1);
    }
    else
    {
        foreach (char x in digitStr)
        {
            if (x < point_num)
            {
                real += x;
            }
            else if (x > point_num)
            {
                fractional += x;
            }
        }
 
        result += CalculatePow(real, real.Length - 1);
        result += CalculatePow(fractional, -1);
    }
 
    if (!positive)
    {
        result = -1 * result;
    }
 
    return result;
}
 
private double CalculatePow(string number, double pow)
{
    double result = 0;
    double[] digits = number.Select(x => double.Parse(x.ToString())).ToArray();
 
    for (int i = 0; i < digits.Length; i++)
    {
        result += digits[i] * Math.Pow(2, pow);
        pow--;
    }
 
    return result;
}


Похожие ответы
  1. Потихоньку изучаю C#. Тут решил написать обобщенный класс, который тип T представляет из себя любой тип, связанный с числами. Можно ли его как-нибудь до этого ограничить. Проблема в том, что в моем обобщенном классе есть перегрузка операторов +, - и тд. Соответственно внутри методов перегрузки, мне нужно суммировать, вычитать объекты типа T, что компилятор не дает сделать, так как не знает о T нихрена...ох как же я привык к C++... Как такое реализовывается?

  1. Доброго времени суток! Подскажите почему в строке 19 не верно выполняется последнее в цикле суммирование? Результаты тестирования в принтскрине.

  1. Этакая минизадачка. В общем, написал калькулятор с тримя методами, сложение, вычитание, и поиск числа Фибоначчи. 10000 чисел Фибоначчи находит за 4644,245 мс. Не по теме: Вроде как результаты выдает без ошибок В общем, кому интересно, как вы считаете как происходит расчет, возможно у кого-то есть варианты более быстрых решений, не нужны ссылки на алгоритмы быстрых расчетов и тп. Хочется увидеть ваше мнение. Особенно любителей создать тему, "научите программировать". Хотелось бы увидеть варианты кода, как делаются вычисления. На написание своего варианта, вместе с C#Core+NodeJS потратил около часа, поэтому там нет не каких супер расчетов... Вот ссылка на рабочий вариант онлайн калькулятора описанного выше:http://u0380448.plsk.regruhosting.ru/ Фибоначчи считается по первому числу, не советую вводить число выше 10000... Расчитывает быстрее, чем формирует эти самые 10000 полей

  2. Кликните здесь для просмотра всего текста Можно было бы скрывать второй textarea,Javascript1 2 3 if($(':checked').val() === 'fib'){ ('textarea[name="second"]').perents('.form-group').hide(); }но лень пересобирать сборку... Расчеты делаются на C#

  1. Приветствую,пишу снова,последний этап программы,суммирование из dataGridView. Помогите довести реализацию до конца.

  1. На входе: Две строковых параметра, форматом 64 символа (нули и единицы) Что нужно Нужно сделать два метода возвращающих строковое значение того же формата 64 символа. Алгоритм Умножения и деления нужно реализовать самому.. Помогите, битый день уже бьюсь, на умножении завис.. только вот это есть:

  1. Здравствуйте! Помогите составить программу так, чтобы шла такая последовательность чисел: 1, 1, 2, 3, 5, 8, 13, 21.... Как бы чтобы получить следующее число, нужно сложить 2 предыдущих числа. Помогите, не понимаю как написать. Вот начало кода есть:

  1. Помогите составить программу на C# калькулятор двоичных чисел (+,-,*,: )

  1. Здравствуйте, помогите пожалуйста сложить две матрицы

  1. Здравствуйте, нужна помощь. Код вроде бы написан правильно, но нигде не могу найти ошибку. В ответе консоль выдает System.Double[], хотя должен выдавать результат - сумма векторов, в чем ошибка? Сам код