位操作在算法中的运用
来源:互联网 发布:看图学英语软件 编辑:程序博客网 时间:2024/05/21 16:59
位操作在算法中的运用
1. 与操作&
100 & 111 = 100
2. 或操作|
100 | 000 = 100
3. 异或^
100 ^ 000 = 100
4. 取反~
~100 = 011
5. 向左移位<<
1<<2 = 100
即2的2次方,等于4
6. 向右移位>>
16>>2 = 00100
即16的2的-2次方,等于4
note1:
移位和与操作结合,用来判断一个数的某一位是否为1,这个功能可以用在subset,即子集问题中。
例如:
判断数字8的第三位是否为1?
8&(1>>3)==1?
note2:
移位和或操作结合,用来将一个新的二进制位存储到一个整形数中,这个功能常用于优化内存,或者某些棋盘类型的问题中。
例如:将下面的棋盘保存为一个整形数
1 0
0 1
int a = 0;
a |=(number<<i)
note3:
移位和异或操作结合,用来将数字的某一位取反,用在棋盘类型的问题中。
例如:
1 0
0 1
转为1001
若对坐上角1取反,则结果应为1001^=(1<<3)
即
1001
^ 1000
=----------------
0001
0 0
- 位操作在算法中的运用
- singleNum以及位运算符在编程中的运用(巧妙运用位操作)
- 算法:母函数在算法中的运用
- 倒排索引在算法中的运用
- PID控制算法在仿真中的运用
- 二进制位运算在算法中的巧妙运用
- 分治法在算法设计中的运用
- EM算法在K-Means中的运用
- 位操作的灵活运用
- 位操作-在寄存器中的使用
- git在实际开发中的运用-基本操作
- 小生境思想在多目标优化算法中的运用
- 异或运算在算法中的经典运用
- 模糊算法建模在智能车速度控制中的运用
- 【Chrome】RSA算法在扩展程序中的运用
- C++异或运算在算法中的经典运用
- dfs算法在非图结构中的运用
- python递归、迭代器和生成器在算法中的运用
- optparse模块OptionParser学习
- Deep learning from the bottom up
- ASIHTTPRequest简介
- mcc002及mcc003模板的安装教程
- Javac和Java
- 位操作在算法中的运用
- 283. Move Zeroes——LeetCode(挪“零”)(简单题目)
- Windows下查看端口、查看进程、杀进程
- 高职组:4、幻方填空
- [Cocoa]_[初级]_[NSNotificationCenter 消息中心在程序中的具体应用]
- magent与memcached集群的实现
- BootStrap插件使用之模态框
- 利用 ORMLite 数据库,ViewPager 等实现简易的登陆界面
- Unity学习过程(一)——认识Unity游戏引擎