Как правильно перегрузить оператор сложения двух строк - C#

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

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

Здравствуйте ! Я пытаюсь реализовать один алгоритм , в котором идет работа с двоичной сс. Но не знаю , как правильно перегрузить оператор сложения двух строк. К примеру у меня есть массив стрингов {01;001;001}. Как мне перегрузить оператор так , чтобы при сложении двух единиц я получил 10 ?

Решение задачи: «Как правильно перегрузить оператор сложения двух строк»

textual
Листинг программы
        public static StringNumber operator +(StringNumber x, StringNumber y)
        {
            int max = Math.Max(x.value.Length, y.value.Length);
            byte[] result = new byte[max + 1];
            for (int i = x.value.Length - 1, j = result.Length - 1; i >= 0; i--, j--)
                result[j] = (byte)(x.value[i] - '0');
            for (int i = y.value.Length - 1, j = result.Length - 1; i >= 0; i--, j--)
                result[j] += (byte)(y.value[i] - '0');
            for (int i = result.Length - 1; i > 0; i--)
            {
                if (result[i] > 1)
                {
                    result[i] = 0;
                    result[i - 1] += 1;
                }
            }
            return string.Join(string.Empty, result).TrimStart('0').PadLeft(max, '0');
        }

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


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

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

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