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

时间:2013-11-14 01:08:46

标签: c# binary decimal

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

           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();

3 个答案:

答案 0 :(得分:1)

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

iDecimalNum = Convert.ToInt32(binaryNumber, 2);
很明显,你看起来还不够 How to convert binary to decimal

答案 1 :(得分:0)

首先,为什么要为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),应用算法。

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

答案 2 :(得分: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