位运算应用
来源:互联网 发布:移动硬盘在mac上不能用 编辑:程序博客网 时间:2024/06/05 11:14
参考链接
http://www.cppblog.com/xiaoyisnail/archive/2009/09/19/96707.html
本文主要内容:
1.用实例说明位运算在整数运算替代中有的优化作用
几道算法题
1.判断给定的整数是不是2的整数次幂
2.求给定整数的二进制表示中1/0的个数
3.求给定整数的二进制表示的有效位数
4.求大于等于给定整数的最小的2的整数次幂
5.用+,-和位运算实现正整数除法和取模
6.if和三目运算符
判断给定的整数是不是2的整数次幂
与运算
如:B1000是,1001不是
T = O(1)
求给定整数的二进制表示中1/0的个数
与运算
num0 = sum - num1;
T = O(m) m为1的个数
求给定整数的二进制表示的有效位数
移位
T = O(n) n为二进制位数
求大于等于给定整数的最小的2的整数次幂
如:B1111的答案为B10000。
方法1:移位
T = O(m)+O(n) = O(n), m为1的个数, n为二进制位数
方法2:或运算
T = O(m) m为1的个数
用+,-和位运算实现正整数除法和取模
方法1:逐步减被除数
方法2:以2倍逐步增加被减数大小
如:100/13
100-13>0,100-2*13>0,100-4*13>0,100-8*13<0 商:4
100-4*13=48,48-13>0,48-2*13>0,48-4*13<0 商:2
48-2*13=22,22-13>0,22-2*13<0 商:1
商:4+2+1=7 余数:9
if和三目运算符替换
利用逗号表达式和位运算,其中B和C需要有返回值
if(A) B;
else C;
A?B:C;
A && (B,1) || C
- 位运算的应用
- 位运算应用
- 位运算应用2
- 位运算的应用
- 位运算应用技巧
- 位运算应用技巧
- 位运算的应用
- 位运算应用
- 位运算应用口诀
- 位运算及应用
- 位运算应用技巧
- 位运算应用
- 位运算的应用
- java位运算应用
- 位运算及其应用
- 位运算的应用
- 位运算应用
- 位运算的应用
- Java语言基础:流类(1)
- 发现一个很有意思的博主,好像是个妈妈,呵呵!
- Android开发指导文档(译)--content provider(二)
- 偶无聊写的c#图片浏览器(哈,没营养的,纯粹为积分而发)
- 0-9 带括号的四则运算
- 位运算应用
- 初学JAVA需要搞懂的几个问题
- static的含义以及其在C/C++中的区别
- 注册BroadcastReceiver的方法以及它们的区别
- JAVA基础--关键字 final/static/this/super
- 生活在Emacs中(转)
- 生成图片形式的数字字母组合验证码
- 使用Vim打造IDE--tags
- SQLServer链接数据库操作