-4

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

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

3 回答 3

1

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

iDecimalNum = Convert.ToInt32(binaryNumber, 2);

显然你还不够努力 如何将二进制转换为十进制

于 2013-11-14T01:13:33.070 回答
0

首先,为什么 iBinaryNum 使用 int?

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

  • 有一个计数器,从 1 开始
  • 取最后一位,如果是 0,什么都不做,如果是 1,乘以 counter,加到 temp 结果,乘以 counter。
  • 倒数第二个重复...

因此,对于 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)运行您的输入,应用该算法。

如果您真的想学习,请跟随面包屑的踪迹...
如果您只想让某人编写您的代码...好吧...也许其他人会...

于 2013-11-14T01:16:33.930 回答
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

于 2013-11-14T01:36:13.637 回答