如何对以下格式的二进制整形进行逻辑或运算?需要进行进制转换吗?我直接定义成常量是不行的
0b00000000000000000000000000100000;
0b00000000000000000000000001000000;

解决方案 »

  1.   

    DotNet4.0以上可以用BigInteger类(需要添加System.Numerics的引用):
    BigInteger a = BigInteger.Parse("0b00000000000000000000000000100000", NumberStyles.HexNumber);
    BigInteger b = BigInteger.Parse("0b00000000000000000000000001000000", NumberStyles.HexNumber);
    BigInteger c = a | b;
    string cs = c.ToString("x");
      

  2.   

    应该是二进制数吧?你把字符串前两位去掉,剩下的就是一个32位int了            int a = Convert.ToInt32("00000000000000000000000000100000", 2);
                int b = Convert.ToInt32("00000000000000000000000001000000", 2);            Console.WriteLine("0b" + Convert.ToString(a, 2).PadLeft(32, '0'));
                Console.WriteLine("0b" + Convert.ToString(b, 2).PadLeft(32, '0'));
                Console.WriteLine("0b" + Convert.ToString(a | b, 2).PadLeft(32, '0'));
                Console.WriteLine(a | b);
                Console.ReadLine();            //0b00000000000000000000000000100000
                //0b00000000000000000000000001000000
                //0b00000000000000000000000001100000
                //96
      

  3.   

    目前C#不支持0b和x,只能转换成16进制使用0x或者十进制表示。