Преобразовать двоичный код в int

1

Я хочу преобразовать свой текст в двоичный код и в XOR с некоторым значением, но я получаю сообщение об ошибке:

System.InvalidCastException: Невозможно наложить объект типа "System.Text.StringBuilder" на тип "System.IConvertible".

Мой код:

        public static string StringToBinary(string data)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char c in data.ToCharArray())
            {
                sb.Append(Convert.ToString(c, 2).PadLeft(8, '0'));
            }
            var abc = Convert.ToInt32(sb);
            var k = abc ^ 210;
            return k.ToString();

        }

Похоже, я не могу преобразовать двоичный код в int. Есть ли другой способ сделать это?

  • 1
    На какой именно линии?
  • 0
    Другие ответили правильно, чтобы преобразовать значение. Исключение происходит, потому что StringBuilder не является string . Вы можете использовать sb.ToString() чтобы получить строковое значение, но, как говорили другие, в этом нет необходимости.
Показать ещё 1 комментарий
Теги:

2 ответа

2
Лучший ответ

Поскольку у вас есть целочисленное значение в этой строке data, вы можете попробовать использовать класс Convert, где вы можете передать базу, которую хотите преобразовать. Двоичная база 2, поэтому попробуйте следующее:

public static string StringToBinary(string data)
{
   int result = Convert.ToInt32(data, 2);

   return result.ToString();
}
  • 0
    Я получаю сообщение об ошибке: System.FormatException: не удалось найти какие-либо распознаваемые цифры.
1

Почему бы вам не использовать встроенный метод. Вы можете просто передать base как 2 в функции Convert.ToInt32.

int outputAsInt = Convert.ToInt32(data, 2);

или если вы хотите получить вывод в строке, просто используйте функцию.ToString().

string outputAsString = Convert.ToInt32(data, 2).ToString();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню