我试图将以下2种方法转换为c#,而.net编译器却没有抱怨。坦率地说,我只是不了解这两种方法在后台如何真正起作用。因此,这里的答案和解释将很棒。
public static int bytesToInt(byte b0, byte b1, byte b2, byte b3)
{
return (((int)b0 << 24) & 0xFF000000)
| (((int)b1 << 16) & 0x00FF0000)
| (((int)b2 << 8) & 0x0000FF00)
| ((int)b3 & 0x000000FF);
}
public static byte[] charToBytes(char c)
{
byte[] result = new byte[2];
result[0] = (byte) ((c >>> 8) & 0x00FF);
result[1] = (byte) ((c >>> 0) & 0x00FF);
return result;
}
Run Code Online (Sandbox Code Playgroud)
第二种方法特别令人困惑,因为使用的移位运算符与第一种方法不同。
在此先感谢您的帮助。