我需要将一个字节数组转换成UInt16(ushort)数组。我已经能够从字节数组转换为UInt32数组。
我已经查看了这个SO问题。但我不能使用BitConverter或参考问题中给出的解决方案。
我还参考了这些问题: 这个和这个。
这是我到目前为止尝试过的。
我已经查看了这个SO问题。但我不能使用BitConverter或参考问题中给出的解决方案。
我还参考了这些问题: 这个和这个。
这是我到目前为止尝试过的。
for (uint objIndex = 0; objIndex < data.Length; ++objIndex)
{
data[objIndex] = (Convert.ToUInt16(byteArray[objIndex * sizeof(UInt16) + 0].ToString()) << 8)
+ byteArray[objIndex * sizeof(UInt16) + 1];
// Error - Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists.
data[objIndex] = ((ushort)(byteArray[objIndex * sizeof(UInt16) + 0]) << 8)
+ byteArray[objIndex + 1];
// Error - Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists.
}
请告诉我这里缺少什么。
编辑: 在将每个数字转换为ushort后,我成功修复了它,如下所示。
for (ushort objIndex = 0; objIndex < data.Length; ++objIndex)
{
ushort length = sizeof(UInt16);
data[objIndex] = (ushort)( (ushort)(byteArray[objIndex * length] << (ushort)8) +
byteArray[objIndex + 1] );
}
data[objIndex] = (ushort) (((ushort)(byteArray[objIndex * sizeof(UInt16) + 0]) << 8) + byteArray[objIndex + 1]; )
- gturri