学校の課題に取り組んでいるのですが、奇妙な出力が得られます。そのため、手の込んだ方法に進む前に、より基本的な方法のいくつかを確認する必要があると考えました。私が持っている質問はこれです:方法は
public static short get16(byte a, byte b){
return (short)(a*Math.pow(2,8)+b)
}
short最初の 8 ビットがバイトaで、最後の 8 ビットがバイトであるa を返しますbか? 2^8乗算は左に 8 ビットをシフトすることと同じであるため、なぜそうならないのかわかりません。そして、2 番目のバイトを追加すると、 を掛けることによって達成される 8 つの 0 を補うことができ2^8ます。これは正しいです?