首页 > 代码库 > 取给定正整数的指定bit位开始的指定长度的数据
取给定正整数的指定bit位开始的指定长度的数据
#include "OJ.h" #include <iostream> #include <vector> using namespace std; /* 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) { /*在这里实现功能*/ int moveBit = startbit + 1 - bitlen;//为何右移的位数是这个数,而不是startbit, 有些不太懂? //int moveBit = startbit+1; int k =1; int sum =0; for (int i =1; i <= bitlen; ++i) { sum += k; k *=2; } int result = (input >> moveBit) & sum; return result; } int main() { cout<<GetBitsValue(4, 2, 1)<<endl; return 0; }
取给定正整数的指定bit位开始的指定长度的数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。