我在java代码中看到了这一点。
int n = 300 //passed through a function
size = (n + 31) >> 5 //size = 10
5
可能有什么意义?
31
//与int size(31 bit + 1 sign)
由于
答案 0 :(得分:6)
5的重要性是32 = 2 ^ 5.
size = (n + 31) >> 5
将size
设置为ceiling(n/32)
,这是存储n
位标志所需的32位整数的数量。
向n
添加31是为了确保被除数至少与32的最大倍数大于或等于n
一样大。