用C#将两个字节转换为Int16

本文关键字:字节 两个 转换 Int16 | 更新日期: 2023-09-27 18:03:25

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

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

用C#将两个字节转换为Int16

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

简称:

var myShort = (short) (myByteArray[0] << 8 | myByteArray[1]);

Int32

var myint = myByteArray[0] << 24 | myByteArray[1] << 16 | myByteArray[2] << 8 | myByteArray[3];

不过要注意结尾。

您可以使用BitConverter。如果它是一台虚拟机,您需要仔细检查预期的端序(以防它与PC的端序相反(

// 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);

其中字节是要转换的字节数组。

来源:http://msdn.microsoft.com/en-us/library/bb384066.aspx