将二进制转换为int

时间:2015-03-30 13:47:29

标签: c#

我想将我的文本转换为二进制文件并将其与某些值进行异或,但我收到错误:

  

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。还有其他办法吗?

2 个答案:

答案 0 :(得分:2)

由于此data字符串上有整数值,因此您可以尝试使用Convert类,您可以在其中传递要转换的基数。二进制是基础2,所以,试试这个:

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

   return result.ToString();
}

答案 1 :(得分:1)

为什么不使用内置方法。您可以在base函数中将2作为Convert.ToInt32传递。

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

或者如果你想在字符串中输出,那么只需使用.ToString()函数。

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