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,将数组初始化为该大小(当然是截断)。

在下一步中,我们获取n并设置 element n/8,或 2 由于截断,与按位 OR1<<(n%8)或 1 向左移动(n%8)位相同的元素。这相当于:

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

请注意,1<<(n%8)等于2^(n%8)where(n%8)是余数 whenn除以 8。

于 2013-09-04T20:32:10.663 回答
0

简而言之,无需详细说明,该构造表示带有字节数组的位集,该字节数组允许根据其位置随机访问各个位。

于 2013-09-04T20:35:23.010 回答
0

0xFFFFFFFF是十六进制的整数文字。然后除以 8。

于 2013-09-04T20:38:16.257 回答