unsigned long ccNextPOT(unsigned long x){
x = x - 1;
x = x | (x >> 1);
x = x | (x >> 2);
x = x | (x >> 4);
x = x | (x >> 8);
x = x | (x >>16);
return x + 1;
}
最佳答案
OR 和 SHIFT 语句将 x
最高有效位右侧的所有位填充为 1(最多 32 位)。与预递减和后递增语句一起,它计算(如函数名称所暗示的)下一个等于或大于给定数字的二的幂数(如果x
大于0 且小于 2^32)
关于c - 这个位操作函数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637142/