1

タスクは、指定された整数から各バイトをフェッチすることです。これは私がどこかで見たアプローチです:

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 つのアプローチに違いはありますか?どちらが優先されますか?

4

1 に答える 1