質問: 1 1001 0000のバイナリ値であるため、data [0]には0000 0001が含まれ、data [1]には1001 0000が含まれます。
回答: 単純なビット演算を使用する:data[0] = (byte) (width & 0xff); data[1] = (byte) ((width >> 8) & 0xff); 仕組み: & 0xffは、下位8ビットを除くすべてをマスクします。 >> 8は、すべてのビットを8桁右に移動して、最下位の8ビットを破棄します。 これらのビット演算はintで機能し、intよりも大きなデータ型であるbyteを返すため、バイトへのキャストが必要です。ゼロ以外のビットはすべてbyteに収まるため、大文字小文字は安全です。詳細については、 conversions and promotions を参照してください。 edit: taylor l は、この場合>>は機能しますが、このコードをfourバイト(java an intは32ビットであるため)。その場合、>>>ではなく>>を使用することをお勧めします。 ビット単位およびビットシフト演算子 のjavaチュートリアルを参照してください。