您的位置:首页 > 其它

取给定正整数的指定bit位开始的指定长度的数据

2015-12-18 20:17 302 查看
例如input为4,对应二进制为0x100,startbit为2,bitlen为2,则取0x10,对应的输出应为2,是从startbit开始往后取bitlen个位。

/*
Description
取给定正整数的指定bit位开始的指定长度的数据。bit位从右向左从0开始计算。
Prototype
unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)
Input Param
input      输入的整数
startbit   需要获取的开始bit
bitlen     需要获取的bit长度
Output Param
无
Return Value
对应的bit取值
*/

unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)
{
/*在这里实现功能*/
unsigned int outData = 0;
unsigned int cnt = 1;
for (unsigned int i=startbit;i>(startbit-bitlen);i--)
{
outData |= (((input>>i)&0x00000001)<<(bitlen-cnt));
cnt ++;
}
return outData;
}

int main()
{
int a = GetBitsValue(29,3,2);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: