ショートを2バイトに変換しようとしています...そしてそれらの2バイトから同じショート値を取得しようとしています。そのために、私はこのコードを書きました:
short oldshort = 700;
byte 333= (byte) (oldshort);
byte byte2= (byte) ((oldshort >> 8) & 0xff);
short newshort = (short) ((byte2 << 8) + byte1);
System.out.println(oldshort);
System.out.println(newshort);
700(oldshort)の値の場合、newhosrtは444です。いくつかのテストの後、このコードは一部の値に対してのみ機能します。たとえば、oldshort = 50の場合は正常に機能しますが、-200、または127より大きい値(私は思う)の場合は機能しません。符号付きバイトや2の補数などに問題があると思いますが、解決方法がわかりません。
何か案が??これをJavaで行うネイティブな方法はありますか?前もって感謝します!