【问题标题】:C# - How to show every combination of a 3 decimal placed number (4 numbers outside of the decimals)C# - 如何显示 3 个小数位数字的每个组合(小数点外的 4 个数字)
【发布时间】:2017-05-13 21:37:27
【问题描述】:

我想知道如何写出一个包含 3 个小数的数字的所有可能组合。

正如您可能已经猜到的那样,我将它用于 IP 地址,所以我需要 4 位小数的数字在 0 到 255 之间。 有什么方法可以在控制台应用程序中编写每个小数点后 4 位数字(0.0.0.0 - 255.255.255.255)的组合?如果可以做到这一点,那么回复将是很棒的。感谢阅读!

【问题讨论】:

  • 只要我们尝试,世界上的一切都是可行的。所以继续尝试,在这里发布你的努力,然后提出具体的问题。
  • 感谢您的回复。我在这个项目上搞砸了一段时间,但不知道在这里发布什么代码示例,因为我不确定什么可能与这个问题相关。

标签: c# int decimal digit


【解决方案1】:

是的,您可以通过这样的简单嵌套 for 循环来实现这一点:

public class Program
{
    public static void Main(string[] args)
    {
        for (int a = 0; a < 256; a++)
        {
           for (int b = 0; b < 256; b++)
           {
               for (int c = 0; c < 256; c++) 
               {
                   for (int d = 0; d < 256; d++)
                   {
                       string ipAddress = string.Format("{0}.{1}.{2}.{3}", a, b, c, d);
                       Console.WriteLine(ipAddress);
                   }
               }
           }
        }
    }
}

【讨论】:

  • 谢谢,完美运行!感谢您的快速响应。
  • @TamásSzabó 您的编辑并没有使这个答案更具可读性,它本来就很好。
  • @HimBromBeere 好吧,我想这只是个人意见。
  • @HimBromBeere 只是出于好奇,您是否也反对使用using 阻止同样的时尚?
  • @TamásSzabó 我对这种风格没有任何反对意见,我的评论只是与您的编辑有关,它没有带来任何改进 - 但没有任何伤害。
【解决方案2】:

由于您可以convert an IP4 address to integer,因此您可以在一个 for 循环中执行此操作:

for (uint i = 0; i <= 4294967295; i++)
{
    byte[] bytes = BitConverter.GetBytes(i);
    Array.Reverse(bytes);
    string ipAddress = new IPAddress(bytes).ToString();
    Console.WriteLine(ipAddress);
}

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多