【问题标题】:Converting Decimal to Binary C# using functions使用函数将十进制转换为二进制 C#
【发布时间】:2018-06-01 14:55:23
【问题描述】:

我想使用一个函数将十进制转换为二进制,但我看不出我的代码有什么问题:(错误表明我不能简单地将字符串转换为字符,但我已在第 12 行将其转换)。编辑 - 我对将 denary 转换为二进制而不是输出的过程感兴趣。

    static void Main (string[] args)
    {
     Console.WriteLine("Decimal 14 = Binary " + dec_to_bin(14));
     Console.WriteLine("Decimal 100 = Binary " + dec_to_bin(100));
     Console.WriteLine("Decimal 32 = Binary " + dec_to_bin(32));
     Console.WriteLine("Decimal 64 = Binary " + dec_to_bin(64));
     Console.ReadLine();
    }
    public static string dec_to_bin(int dec)
    {
     string binary = "11111111";
     char[]binaryArray = binary.ToCharArray();

     for (int i = 0; i < 8; i++)
     {
      if (dec % 2 == 0)
      {
       binaryArray[i] = "0"; // error 1
      }
      else 
      {
       binaryArray[i] = "1"; // error 2
      }
     }

     binary = new string(binaryArray);
     return binary;

   }

【问题讨论】:

  • 您可能希望将其称为“整数到二进制”,因为有一个特定的 Decimal 类型。
  • 要添加到上面的 mjwills 评论中:当您就遇到的异常提出问题时,最好将其堆栈跟踪包含在问题中。使分析问题变得更容易,并且无论如何都会被要求。
  • @mjwills 我想自己编写代码,我更想知道它是如何工作的,而不是输出。

标签: c# function binary decimal


【解决方案1】:

binaryArray[i] = "0" 必须是binaryArray[i] = '0'

"0"string 文字,而 '0'char 并且您有一个 char 数组。

binaryArray[i] = "1" 也一样


虽然上述方法可以解决您的问题,但我建议使用 Convert.ToString(dec, 2)(正如 mjwills 标记的 dupe 所建议的那样)。当然,这只有在您对结果感兴趣而不是自己编写代码时才有意义。


请注意,我故意没有解决代码 sn-p 的任何其他问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2017-02-18
    • 2012-06-26
    • 2019-12-14
    • 1970-01-01
    相关资源
    最近更新 更多