int
の変数にはJavaの変数(0から64000の範囲)があります。この整数にバイトを変換するには? int
(範囲は問題ありません)からちょうど2つ下のバイトが必要です。これをどのように抽出するのですか?int変数から下位2バイトを取得
11
A
答えて
22
あなたは0xFF
との論理積をとることにより、整数から最下位バイトを取得することができます。
byte lowByte = (byte)(value & 0xFF);
0xFF
はどこにでも最初のバイト上記のゼロのビットを持っているので、これは動作します。
2番目に低いバイトを取得するには、あなたは8番スポットのすべてのビットをシフトダウンした後、このトリックを繰り返すことができます:
byte penultimateByte = (byte)((value >> 8) & 0xFF);
3
をあなたは下を得るために行うAND演算する必要はありませんバイトだけをバイトにキャストし、バイト変数の下位バイトを取得します。次の両方の
試みは、それはトリックではありませんが、それは「算術シフト」と呼ばれていますあなたに
short value = 257;
System.out.println(value);
byte low = (byte) value;
System.out.println("low: " + low);
byte high = (byte)(value >> 8);
System.out.println("high: " + high);
value = 257;
System.out.println(value);
low = (byte) (value & 0xFF);
System.out.println("low: " + low);
high = (byte) ((value >> 8) & 0xFF);
System.out.println("high: " + high);
を同じ結果を与えるかIdeone.com
+1でそれをしようとします;-) –