我有一个接受数字的函数,该数字会将其转换为 5x7 的数字图形表示,如下所示:
Console.WriteLine(" ███ "); // byte: 0000 1110
Console.WriteLine("█ █"); // 0001 0001
Console.WriteLine("█ █"); // 0001 0001
Console.WriteLine("█ █"); // 0001 0001
Console.WriteLine("█ █"); // 0001 0001
Console.WriteLine("█ █"); // 0001 0001
Console.WriteLine(" ███ "); // 0000 1110
有人告诉我,使用字节数组可以更快地完成。这基本上就是我所做的:
byte[] data = new byte[] { 14, 17, 17, 17, 17, 17, 14 };
BitArray bitData = new BitArray(data);
int bitCounter = 0;
foreach (bool bit in bitData)
{
if (bit)
Console.Write("█");
else
Console.Write(" ");
bitCounter++;
if (bitCounter>7)
{
bitCounter=0;
Console.WriteLine();
}
}
这比开始时慢,所以我不能使用它。谁能告诉我一个更好的方法?
更新: StringBuilder 确实有帮助,但它会比我原来的代码慢一点。它仍然基本上在控制台中使用写命令 7 次让我慢下来。我尝试使用 \n 仅使用 1 个写入命令,但我需要缩进下一行而不擦除缩进空格内。