タスクは、指定された整数から各バイトをフェッチすることです。これは私がどこかで見たアプローチです:
byte[] bytes = new byte[4];
bytes[0] = (byte) ((id >> 24) & 0xff);
bytes[1] = (byte) ((id >> 16) & 0xff);
bytes[2] = (byte) ((id >> 8) & 0xff);
bytes[3] = (byte) (id & 0xff);
これは、次のように同じ分割になります。
bytes[0] = (byte) (id >>> 24);
bytes[1] = (byte) (id >>> 16);
bytes[2] = (byte) (id >>> 8);
bytes[3] = (byte) (id);
ここで、id
は整数値で、ALWAYS
符号なしです。実際、最初のアプローチではその必要性がわかりませんAND with 0xff
(そうではありませんか? 常に最下位バイトを使用しているためです)。
2 つのアプローチに違いはありますか?どちらが優先されますか?