我得到两个java字节作为输入,共同表示一个16位有符号整数。我需要将它转换为一个单一的java整数(当然,签名)。我想出了一个“丑陋的”解决方案,其中包括转换为int,然后转换为short,然后转换为int。有更短更优雅的方式吗? 我的代码如下:如何简化这种二进制到java类型的代码?
public int convert(byte b1, byte b2){
int i1 = (int) (((b2 << 8) + (b1 & 0xFF)) & 0x0000FFFF);
short s1 = (short) i1;
int i2 = (int) s1;
return i2;
}
'return(short)i1;'会更简单,利用自动加宽。 –
但是我最终必须得到一个int(不是简短的)(出于传统的原因)。 – alebo611
'return(short)i1;'与您最后3行相同。勾小指。 –