将 C printf(%c) 转换为 C#

Ria*_*ias 5 c c# printf

我正在尝试将此 C printf 转换为 C#

printf("%c%c",(x>>8)&0xff,x&0xff);
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情:

int x = 65535;

char[] chars = new char[2];
chars[0] = (char)(x >> 8 & 0xFF);
chars[1] = (char)(x & 0xFF);
Run Code Online (Sandbox Code Playgroud)

但我得到了不同的结果。我需要将结果写入文件,所以我这样做:

tWriter.Write(chars);
Run Code Online (Sandbox Code Playgroud)

也许这就是问题所在。

谢谢。

Mit*_*eat 3

在 .NET 中,char变量存储为无符号 16 位(2 字节)数字,其值范围为 0 到 65535。因此请使用:

        int x = (int)0xA0FF;  // use differing high and low bytes for testing

        byte[] bytes = new byte[2];
        bytes[0] = (byte)(x >> 8);  // high byte
        bytes[1] = (byte)(x);       // low byte
Run Code Online (Sandbox Code Playgroud)