4

我在java代码中看到了这一点。

int n = 300 //passed through a function
size = (n + 31) >> 5 //size = 10

有什么意义531//should something to do with int size (31 bit + 1 sign) 有什么意义

谢谢

4

1 回答 1

6

5 的意义在于 32 = 2^5。

size = (n + 31) >> 5

设置size为,这是存储位标志ceiling(n/32)所需的 32 位整数的数量。n

加上 31n是为了确保被除数至少与大于等于 32 的最小倍数一样大n

于 2012-10-08T23:49:17.013 回答