我的问题是关于 Java
Java 的 BitConverter.ToUInt16 等价物是什么?
我正在尝试翻译这种 C# 方法:
public static implicit operator ushort(HashlinkReader p)
{
ushort tmp = BitConverter.ToUInt16(p.Data.ToArray(), p.Position);
p.Position += 2;
return tmp;
}
到 Java:
public static int convertToInt(HashlinkReader p)
{
byte[] byteArray = new byte[p.Data.size()];
for (int index = 0; index < p.Data.size(); index++) {
byteArray[index] = p.Data.get(index);
}
int tmp = toInt16(byteArray, p.Position);
p.Position += 2;
return tmp;
}
public static short toInt16(byte[] bytes, int index) //throws Exception
{
return (short)((bytes[index + 1] & 0xFF) | ((bytes[index] & 0xFF) << 0));
//return (short)(
// (0xff & bytes[index]) << 8 |
// (0xff & bytes[index + 1]) << 0
//);
}
但我知道那是错误的。怎么会是对的?