位运算小结
来源:互联网 发布:激光手电软件下载 编辑:程序博客网 时间:2024/05/19 23:14
当你做一个非常大的数的乘除运算时,你就会为位运算感叹,为之惊人的速度而感动!下面是我总结的一点点位运算的应用:
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
优先级从高到低,依次为~、&、^、|。
1. 左移1位相当于乘以2 << 左移2位相当于乘以4 依次类推左移N位相当于乘以2^n;(注意:两个操作数必须是int)
2. 右移1位相当于除2 >>右移2位相当于乘以4 依次类推左移N位相当于除2^n;
(注意:两个操作数必须是int,必须用于整除,结果也是整型的,不会保留小数部分).
3. 异或运算^:同为0,异为1
3.1应用 (只能用于整数)相同的两个整数作^运算结果为0。
3.2只能用于整数 0异或^其它任意整数等于该整数本身。(西南科大oj 1424 Find Different)。
3.3不用设置中间变量,用于交换两个整数的位置。
Int a = 9 ; int b = 2;
a = a ^ b;
b = b ^ a;
a = a ^ b;
4. 二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数.
判断int型变量a是奇数还是偶数,尤其是对大数的判断
a&1 == 0 偶数
a&1 == 1 奇数
5. 利用与运算可以求出一个int变量里面有多少个1
Sum里面存的就是该数对应的二进制中1的个数。
int a = 4095;int sum = 0;while(a > 0){ a = a & (a-1); sum++;}cout << sum <<endl;
6.(|)按位或
| 运算符查看两个表达式的二进制表示法的值,并执行按位“或”操作。该操作的结果如下所示:
0101 (expression1) 1100 (expression2) ---- 1101 (结果)
任何时候,只要任一表达式的一位为 1,则结果的该位为 1。否则,结果的该位为 0。
- 位运算小结
- 位运算小结
- 位运算小结操作
- 位运算个人小结
- 位运算小结
- 位运算小结
- 按位运算小结
- 位运算小结(2)
- 逻辑位运算小结5
- 逻辑位运算小结6
- 位运算符小结(转载+修改)
- 关于二进制和位运算(小结)
- 逻辑位运算小结4--x|y的最大值
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 汇编语言编写的输出三个数的最大和最小(原创)
- JPA继承关系详解(1)
- 文化转型与竞争力
- Request method (1)
- 推荐!CSDN博客放阿里妈妈广告代码的方法
- 位运算小结
- Linux C 开发环境(debian)
- 我是如何招聘程序员的【转载】
- Windows下架设Subversion服务器
- private,protected,public,internal以及protected internal的区别
- Direct3D简介
- SQL SERVER数据库完整个优化解决方案
- 迪拜楼价一年跌一半梦想之城一夜坍塌
- C语言代码的整个编译过程