关于bit操作
来源:互联网 发布:淘宝店铺转让可信吗 编辑:程序博客网 时间:2024/05/29 03:09
关于bit操作,在嵌入式软件中是经常用到的。通过是为了截取某几个bit位的值,或者替换某几个bit位的值。
UINT32 get_bit(UINT32 ulVal, UINT8 ucBottom, UINT8 ucTop)
{
UINT32 mask = 0x01;
//step 1:
mask = (mask << (ucTop - ucBottom + 1)) - 1; //0x000011111,1的长度为截取的长度
//step 2:
ulVal = ulVal >> ucBottom; //将开始位的ucBottom右测数据清零并右移到低位
//step 3:
ulVal = ulVal & mask; //跟进step1的长度将ucTop左测清零,得到最终结果
}
另外数据的强制转换需要特别注意,很容易出错。
UINT32 set_bit(UINT32 ulScrData, UINT8 ucBottom, UINT8 ucTop, UINT32 ulInpData)
{
UINT32 mask = 0x01;
//step 1:
mask = (mask << (ucTop - ucBottom + 1)) - 1; //0x000011111,1的长度为截取的长度
//step 2:
ulInpData = (ulInpData & mask) << ucBottom; //将输入置换数截取有效的长度
//step 3:
ulScrData = ~(mask << ucBottom); //将源数据的要被置换的bit数据清零
//step 4:
ulScrData = ulScrData | ulInpData;
return ulScrData;
}
- 关于bit操作
- 关于bit操作(bit_set test_bit)
- MFC 关于BMP 24bit 和 32bit的操作
- 关于bit操作,你知道多少?
- Bit 操作
- bit操作
- bit 操作
- [bit manipulation] 关于位操作的一些博客
- 收获:关于32bit 64bit 重定向及注册表操作问题
- BIT位操作用途
- bit操作的问题
- bit操作函数
- (嵌入式)位(bit)操作
- c-bit相关操作
- Linux bit 操作
- Bit操作整理
- 关于Bit单位
- 关于Bit Depth SVC
- 导航菜单的实现
- Java 编码问题总结
- 添加gitignore的方法
- 如何使用SN.exe工具
- 从源代码分析Android-Universal-Image-Loader的缓存处理机制(强力推荐)
- 关于bit操作
- 出现chkstk.asm问题的解决方式之一http://blog.csdn.net/feixuedudiao/article/details/8625039
- MmAllocatePagesForMdl routine
- C# 文件操作
- 获取管理员权限的粗糙思路
- 常量和变量——swift学习笔记(1)
- 阮一峰:git远程操作
- css selection改变文字反选的背景颜色
- 读取和解析XML数据----读取XML DocumentBuilderFactory