在C#中将二进制转换为十进制的程序?

我想创建一个基本程序,使我能够将二进制数转换为十进制数,但几乎无处不在互联网上,我只是无法找到一个有效的解决方案! 我似乎无法遵循解决方案,到目前为止我已经开发了一些代码,但不确定它是否正确,有什么帮助吗? 谢谢

int iBinaryNum; //To store binary number string sDecimalNum; //To store decimal numbers Console.WriteLine("Enter the binary number you want to convert to decimal"); iBinaryNum = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("The Binary number you have entered is " + iBinaryNum); sDecimalNum = Convert.ToString(iBinaryNum, 2); Console.WriteLine("This converted into decimal is " + sDecimalNum); //Prevent program from closing Console.WriteLine("Press any key to close"); Console.ReadKey(); 

Convert.ToInt32方法有一个重载,它接受一个“from”基本参数。 http://msdn.microsoft.com/en-us/library/1k20k614.aspx

 iDecimalNum = Convert.ToInt32(binaryNumber, 2); 

显然你还没有看得太辛苦如何将二进制转换为十进制

首先,为什么要为iBinaryNum使用int?

其次,我会把它放在一个字符串中,然后冲洗并重复以下内容:

  • 有一个柜台,从1开始
  • 取最后一位数,如果它为0,则不执行任何操作,如果它是1乘以计数器,则添加到临时结果,将计数器乘以2。
  • 从最后重复第二次…

所以,对于1010,你将有0 * 1 + 1 * 2 + 0 * 4 + 1 * 8 = 10。

这是另一页: http : //www.binaryhexconverter.com/binary-to-decimal-converter

编辑:
好吧,首先,您要求的是我编写代码。

您真正需要的是弄清楚如何使用循环(请看这里: http : //csharp-station.com/Tutorial/CSharp/Lesson04 )

如何计算字符串的长度: string_name.Length

然后运行您的输入从后到前(从长度,到下降到0),应用算法。

如果你真的想学习,请遵循面包屑的踪迹……
如果你只是想让别人写你的代码……那么……也许其他人会……

你不应该说你看过每一个都找不到答案。 我知道你对此不熟悉,但更好的一句话是:“我无法理解我找到的解决方案。”

无论如何,您可以使用ToInt32的重载来转换指定的基数。

 iDecimalNum = Convert.ToInt32(iBinaryNum, 2); 

虽然,为此,IDecimalNum需要是一个字符串。 编辑后的代码如下所示:

 string iBinaryNum = Console.ReadLine(); int iDecimalNum = Convert.ToInt32(iBinaryNum, 2); 

您想要转换为小数但将iDecimalNum存储为整数也有点奇怪。

有关重载的信息,请参阅MSDN的文档: http : //msdn.microsoft.com/en-us/library/1k20k614(v = vs.110).aspx