我正在尝试将以下两种方法转换为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;
}
第二种方法特别混乱,因为使用的移位运算符与第一种方法不同。
提前感谢您的任何帮助。