【问题标题】:Convert binary to int将二进制转换为int
【发布时间】:2015-03-30 13:47:28
【问题描述】:

我想将我的文本转换成二进制并用一些值异或,但我得到一个错误:

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。还有其他方法可以做到这一点吗?

【问题讨论】:

  • 究竟在哪一行?
  • 其他人已正确回答以获得转换的值。发生异常是因为 StringBuilder 不是 string。您可以使用sb.ToString() 来获取您的字符串值,但正如其他人所说,这不是必需的。
  • Convert.ToInt32(object) 要求参数可转换为 Int32。 StringBuilder 不是。

标签: c#


【解决方案1】:

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

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

   return result.ToString();
}

【讨论】:

  • 我收到一个错误:System.FormatException: 找不到任何可识别的数字。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    相关资源
    最近更新 更多