比如有个字符串string1用2进制表示为10011,按位取反变成01100,这在C#中应该如何实现?请各位帮忙解答,谢谢.

解决方案 »

  1.   

    string1.Replace('0','-');
    string1.Replace('1','0');
    string1.Replace('-','1');
      

  2.   

    string1 = string1.Replace('0','-').Replace('1','0'.Replace('-','1');
      

  3.   

    如果是32位二进制,可以转换为int,再转回
    Convert.ToString((~Convert.ToInt32(string1,2)),2);
      

  4.   

    string1 = string1.Replace('0','-').Replace('1','0'.Replace('-','1');
    这个看不懂哦。
      

  5.   

    请问我这样做行吗?
    /// <summary>
    /// 把一个字节数组按位取反,得到一个新的字节数组
    /// </summary>
    /// <param name="inputData"></param>
    /// <param name="outputData"></param>
    public static void OppositeByteArray(byte[] inputData,ref byte[] outputData)
    {
    int len = inputData.Length; int temp; for(int i=0;i<len;i++)
    {
    temp = (int)inputData[i];//原字节数组字节转成int型
    outputData[i] =(byte) ~temp;//取反后赋给输出字节数组 }

    }
      

  6.   

    string1 = string1.Replace('0','-').Replace('1','0'.Replace('-','1');
    这个看不懂哦。先把0换成-
    再把1换成0
    最后把-换成1
      

  7.   

    会有错误的 int是4字节的  temp = (int)inputData[i];//原字节数组字节转成int型
    outputData[i] =(byte) ~temp;//取反后赋给输出字节数组这里会报错吧
      

  8.   

    试过几种方法都不行,先进行
    int j=100; 
    string s=Convert.ToString(j,2);
    s=s.Replace('1','-').Replace('0','1').Replace('-','0');
      

  9.   

    实现如下:
    int j=100; 
    string s=Convert.ToString(j,2);
    s=s.Replace('1','-').Replace('0','1').Replace('-','0');