有没有办法将2个字节转换成有符号整数?我知道我们可以按照以下方式将一个字节转换为有符号整数
byte B1= 0xFF;
int r = Convert.ToSbyte((sbyte)B1);
那对于包含2个字节的有符号整数呢?例如,-260在16进制下表示为0xFC、0xFE。
假设第一个字节是最高有效位(MSB):
byte b1 = 0xff;
byte b2 = 0xff;
var test = BitConverter.ToInt16(new byte[] { b1, b2 }, 0);
否则:byte b1 = 0xff;
byte b2 = 0xff;
var test = BitConverter.ToInt16(new byte[] { b2, b1 }, 0);
编辑:“已签署”
Int16
。 - vgru如果只有一个字节,只需 赋值:
byte B1 = 0xFF;
int r = B1;
byte B1 = 0xFE;
byte B2 = 0xFC;
int r = (B1 << 8) | B2;
如果需要使用Int16
,则进行类型转换:
// -260
short s = unchecked((short) ((B1 << 8) | B2));
Int16
。 - vgru看一下 BitConverter类 和它的ToInt32()方法。