取给定正整数的指定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; }
相关文章推荐
- Web Services 指南之:Web Services 的安全
- 【Android】AndroidStudio上传代码到SVN及从SVN中检出代码
- 【C++11】新特性——引入nullprt
- 使用JDB调试Java程序
- Vim编辑器详解
- 系统设计师之路·第三节·一花一世界,一叶一菩提——无处不在的设计思想
- 08-1 UIControl 及其子类 UISegmentedControl 、UISlider
- Android(七) Handler、多线程、buddle
- 虚拟化三剑客专题-XenServer(下)
- Hadoop 产生背景
- linux学习笔记(13)终端清屏
- Codeforces 325D
- 元素定位
- find、locate文件查找命令详解
- 积分图像(Integral Image)
- crawler4j爬虫技术获取a标签的title及链接
- 《android studio 1》认识Activity组件
- Android Studio 集成JPUSH推送
- 初学者学习编程语言的方法
- linux学习笔记(12)man ascii/cal/xxd/ssh