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

C#能否把带符号的二进制数直接转换成十进制?-求助
如题,比如 int a=207;
换算成二进制是1100 1111,最前一个为符号位,需要先求反码再+1才能得到带符号的十进制数,c#中有没有现成的函数,能直接转换的?如果没有,用c#如何实现反码补码之类的运算,大大们给个例子,感谢。
分不多,求解答。

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

public static int TwoToTen(string num2)
        {
            int num10 = 0;
            for (int i = 0; i < num2.Length; i++)
            {
                num10 += (int)Math.Pow(2, i) *                              Convert.ToInt32(num2.Substring(num2.Length - i - 1, 1));
            }
            return num10;
        }

------解决方案--------------------
int a = 207;
string s = Convert.ToString(a, 2);
输出s
------解决方案--------------------
探讨

2楼大大的只是把十进制转换成了二进制的字符串,我的意思是,把二进制字符串“10101111”转换成带符号的十进制数-47,因为计算机负数存的是补码,需要转换成原码,才能得到