在C#中将两个字节转换为Int16?

Gru*_*unt 3 c# memory byte bytearray short

可能的重复:
在短和字节之间转换的好方法?
如何将4个字节组合成32位无符号整数?

好吧,所以我正在开发这个虚拟机,它有64 kbs的内存.我正在使用byte []数组作为内存,我有一个问题.如何将2个字节转换为短或4个字节到Int32?

San*_*nen 11

其他人建议使用BitConverter.
这是一个不同的解决方案

短:

var myShort = (short) (myByteArray[0] << 8 | myByteArray[1]);
Run Code Online (Sandbox Code Playgroud)

INT32

var myint = myByteArray[0] << 24 | myByteArray[1] << 16 | myByteArray[2] << 8 | myByteArray[3];
Run Code Online (Sandbox Code Playgroud)

但要注意字节序.

  • @Sven框架没有为您提供一个独立于体系结构的数组进行整数转换. (3认同)

Dan*_*ant 8

您可以使用BitConverter.如果它是一个虚拟机,你需要仔细检查预期的字节序(如果它与你的PC的字节序相反).