C++位操作总结
来源:互联网 发布:淘宝上便宜衣服能买吗 编辑:程序博客网 时间:2024/05/13 13:00
总结一下位操作常用的几个技巧:
1.获取
判断某位是否是否为1.
bool GetBit(int num, int i){return ((num & (1 << i)) != 0);}2.置位
将某一位置为1。
int SetBit(int num, int i){return num | (1 << i);}3.清零
将第某几位置为0。
//第i位清零int ClearBit(int num, int i){int mask = ~(1 << i);return num & mask;}
//最高位至i位清零int ClearBitsMSBthroughI(int num, int i){int mask = ~((1 << i) - 1);return num & mask;}
//i位至0位清零int ClearBitsIthrough0(int num, int i){int mask = ~((1 << (i+1)) - 1);return num & mask;}
//i至j位清零(i>j)int ClearBitsIthroughJ(int num, int i, int j){int mask = ~((1 << (i+1)) - (1 << j));return num & mask;}4.更新
将指定位更新为新的值。
//num的第i位更新为vint UpdateBit(int num, int v){int mask = ~(1 << i);return (num & mask) | (v << i);}5.清除最低有效位
c = c & (c-1);
0 0
- c语言位操作总结
- C语言位操作总结 位运算
- C++:位操作基础篇之位操作全面总结
- C++:位操作基础篇之位操作全面总结
- [总结] C语言的位操作技巧
- 面试题总结 - C 语言 - 位操作(bit operation)
- c primer plus第15章总结:位操作
- 位操作符总结
- 位操作总结
- JavaScript位操作总结
- 位操作全面总结
- 位操作总结
- 位操作总结
- java位操作总结
- 位操作总结
- Java位操作总结
- C++位操作总结
- 算法:位操作总结
- HDOJ 2717 Catch That Cow
- Log4j详细使用教程
- 改善java程序之数组和集合1
- 求和
- Linux CFS调度器之task_tick_fair处理周期性调度器--Linux进程的管理与调度(二十九)
- C++位操作总结
- pdo预处理案例
- 图像的矩特征(转自http://www.cnblogs.com/pengkunfan/p/3998921.html)
- 挖个坑,没事就填
- ActiveMQ详细应用实例与配置
- Android五种布局方式——LinearLayout、RelativeLayout、TableLayout....(四)
- Linux CFS调度器之唤醒抢占--Linux进程的管理与调度(三十)
- [matlab] 读取数据-保存数据-文件移动和复制
- 解决在拍照之后,Media数据没有及时更新问题