コード例 #1
0
ファイル: buddy.c プロジェクト: rodrigobmg/v-engine
static inline uint32_t
next_pow_of_2(uint32_t x) {
	if ( is_pow_of_2(x) )
		return x;
	x |= x>>1;
	x |= x>>2;
	x |= x>>4;
	x |= x>>8;
	x |= x>>16;
	return x+1;
}
コード例 #2
0
ファイル: wpacket.c プロジェクト: edolphin-ydf/hydzhengtu
static uint8_t GetK(uint32_t size)
{
	uint8_t k = 0;
	if(!is_pow_of_2(size))
	{
		size = (size << 1);
	}
	//除最高为1位以外,其它位全部清0
	while(size > 1)
	{
		k++;
		size = size >> 1;
	}
	return k;
}