入力として2つの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行と同じです。ピンキーな誓い。 –