日期:2014-05-18  浏览次数:20880 次

[求助] 一个简单的关于求补运算的问题
我想用二进制数求补然后+1
但是c#里的数据类型都是32位的,不明白怎么操作。

如果说我现在想对二进制10进行求补的话
应该怎么把前面的1去掉呢?只留下01

麻烦各位帮忙解答 谢谢

------解决方案--------------------
C# code

            string bin = Convert.ToString(10, 2);
            StringBuilder sb = new StringBuilder();
            foreach (char c in bin)
                sb.Append(c == '0' ? '1' : '0');
            Console.WriteLine(Convert.ToInt32(sb.ToString(), 2) + 1);

------解决方案--------------------
~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 int、uint、long 和 ulong 类型预定义的。