好的,所以我正在开发这个虚拟机,它有 64 kbs 的内存。我正在使用 byte[] 数组作为内存,但我遇到了一个问题。如何将 2 个字节转换为短字节或将 4 个字节转换为 Int32?
问问题
15539 次
3 回答
12
其他人建议使用 BitConverter。
这是一个不同的解决方案
短的:
var myShort = (short) (myByteArray[0] << 8 | myByteArray[1]);
整数32
var myint = myByteArray[0] << 24 | myByteArray[1] << 16 | myByteArray[2] << 8 | myByteArray[3];
不过请注意字节顺序。
于 2011-07-24T15:02:53.787 回答
8
您可以使用BitConverter。如果它是虚拟机,您需要仔细检查预期的字节序(以防它与您的 PC 的字节序相反。)
于 2011-07-24T14:59:19.050 回答
3
// If the system architecture is little-endian (that is, little end first),
// reverse the byte array.
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);
int i = BitConverter.ToInt32(bytes, 0);
其中 bytes 是要转换的字节数组。
于 2011-07-24T15:00:36.463 回答