我已经看到正确的字节数组初始化如
byte[] a = new byte[8];
但这是什么意思?
byte[] bitfield = new byte [0xFFFFFFF/8];
n = 18; // some integer
bitfield [n / 8] |= 1 << (n % 8);
还请解释0xFFFFFFF/8
在这里的含义。
答案 0 :(得分:2)
0xFFFFFFF/8
只是一个值(268435455)除以8,将数组初始化为该大小(当然是截断的)。
在下一步中,我们得到n
并将元素n/8
或2设置为截断,是与1<<(n%8)
或左移{1}的按位OR相同的元素1}}位。这相当于:
(n%8)
请注意bitfield[n/8] = bitfield[n/8] | (1 << (n % 8))
等于1<<(n%8)
,其中2^(n%8)
是(n%8)
除以8时的余数。
答案 1 :(得分:0)
简单地说,并且没有详细说明,该构造表示一个带有字节数组的bitset,允许根据它们的位置随机访问各个位。
答案 2 :(得分:0)
0xFFFFFFFF
是十六进制的整数文字。然后除以8。