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

来源:互联网 发布:金科信软件 编辑:程序博客网 时间:2024/06/06 09:55
  • 接口说明

原型:

unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)

输入参数:

        input      输入的整数

         startbit   需要获取的开始bit

         bitlen     需要获取的bit长度

输出参数(指针指向的内存区域保证有效):

    

返回值:

        对应的bit取值

举例:

输入:4, 2, 2

返回:2

4对应的二进制为100(bit0和bit1为0,bit2为1),那么从bit2开始的2位为10,那么对应的十进制为2。


#include "OJ.h"#include <math.h>/*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 value = 0,bit = startbit;while(bitlen--){value = value<<1;double tem = pow(2.0,static_cast<int>(bit));if((input&static_cast<unsigned int>(tem)) != 0){value = value+1;}--bit;}    return value;}<span style="color:#0000ff;"></span>


0 0
原创粉丝点击