他们是否可以将2个字节转换为signed int?我知道我们可以按照以下方式将一个字节转换为signed int
byte B1= 0xFF;
int r = Convert.ToSbyte((sbyte)B1);
但是签名int的2个字节呢?例如-260是0xFC,0xFE
答案 0 :(得分:7)
假设第一个字节是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);
编辑:“签名”
答案 1 :(得分:6)
如果是一个字节,只需分配:
byte B1 = 0xFF;
int r = B1;
如果是两个字节 - 添加 shift 并指定:
byte B1 = 0xFE;
byte B2 = 0xFC;
int r = (B1 << 8) | B2;
如果需要Int16
,则转换:
// -260
short s = (short) ((B1 << 8) | B2);
答案 2 :(得分:1)
查看BitConverter class及其ToInt32()方法。