0

我正在开发代码以在 C# 中执行基本的元胞自动机。我在 Microsoft Visual Studio Express 2012 中工作。

总的来说,我的代码正在运行,但是在将结果写入控制台时遇到了麻烦。

我编写了一个类“bitrep”,其中包括一个方法“brep”,该方法将 uint 作为输入并返回一个字符串,该字符串对应于该 uint 的位表示。

出于这个问题的目的,我希望返回的字符串是一个黑色(实心)方块代表 1,一个白色(空)方块代表 0。

class bitrep
{
    private uint t = 1;
    private int i = 0;
    private StringBuilder val = new StringBuilder();
    public string brep(uint n)
    {
        val.Clear();
        for (i = 31; i >= 0; i--)
        {
            test = (t & n >> i) == 1;
            if (test)
                val.Append((char)9632); // Produce a solid square for 1's
            else
                val.Append((char)9633); // Produce an empty square for 0's.
        }
        return val.ToString();
    }
}

当程序使用上述代码运行时,输出示例如下:

    ???????????????■????????????????
    ??????????????■■■???????????????
    Press any key to continue . . .

实心/黑色方块代表 1,但不是白色方块,而是 0 被写为?

为什么没有正确显示 0 的白色方块(具有 Unicode UTF-16(十进制)编码 9633)的所需输出?

4

0 回答 0