我正在尝试将此 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)
也许这就是问题所在。
谢谢。
在 .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)
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |