0

C# で基本的なセル オートマトンを実行するコードを開発しています。Microsoft Visual Studio Express 2012 で作業しています。

全体的に私のコードは機能していますが、結果をコンソールに書き込むときに問題があります。

入力として uint を取り、その uint のビット表現に対応する文字列を返すメソッド「brep」を含むクラス「bitrep」を作成しました。

この問題の目的のために、返される文字列を 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 (10 進数) エンコーディング 9633 を持つ) の望ましい出力が正しく表示されないのはなぜですか?

4

0 に答える 0