2

私は言うように適切なバイト配列の初期化を見てきました

byte[] a = new byte[8];

しかし、これはどういう意味ですか?

byte[] bitfield = new byte [0xFFFFFFF/8];
n = 18;  // some integer
bitfield [n / 8] |= 1 << (n % 8);

ここでの意味も説明してください0xFFFFFFF/8

4

3 に答える 3

2
0xFFFFFFF/8

単に値 (268435455) を 8 で割ったもので、配列をそのサイズに初期化します (もちろん、切り捨てられます)。

次のステップでは、切り捨てによりnelement n/8、または 2 を取得して設定し、ビットごとの OR を1<<(n%8)左ビットまたは 1 にシフトした同じ要素とし(n%8)ます。これは次と同等です。

bitfield[n/8] = bitfield[n/8] | (1 << (n % 8))

は、 を 8で割ったときの余りに1<<(n%8)等しいことに注意してください。2^(n%8)(n%8)n

于 2013-09-04T20:32:10.663 に答える
0

簡単に言えば、詳細には触れずに、その構造はバイト配列でビットセットを表し、位置に基づいて個々のビットへのランダム アクセスを可能にします。

于 2013-09-04T20:35:23.010 に答える
0

0xFFFFFFFF16 進数の整数リテラルです。次に、それを 8 で割ります。

于 2013-09-04T20:38:16.257 に答える