基础知识及性质(精简总结)"/>
位运算基础知识及性质(精简总结)
目录
简介
基础知识
常用性质
简介
程计算机中的数在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。
基础知识
- 与运算(&):两个数的对应位都为1时结果为1。
- 或运算(|):两个数的对应位有一个为1时结果为1。
- 异或运算(^):两个数的对应位不相同时结果为1。
- 非运算(~):一个数的每个位取反。
- 左移(<<):二进制表示左移若干位,每左移一位,相当于该数乘以2
- 右移(>>):二进制表示右移若干位,每右移一位,相当于该数除以2
常用性质
- 任何数与 0 进行与运算都是 0
- 任何数与 0 进行或运算都是本身
- 双重非运算可以使得小数快速取整
- 任何数与自己进行异或运算都为 0,所以任何数与 0 进行异或运算都是本身
x^x=0,x^0=x (比较两值是否相等)
- 实现乘除法
数 a 向右移一位,相当于将 a 除以 2;数 a 向左移一位,相当于将 a 乘以 2
- 异或完成变量值交换
//位与操作 void swap(int &a, int &b) {a ^= b;b ^= a;a ^= b; }
- 与 1 进行与运算可以用来判断数的奇偶
只要根据数的最后一位是 0 还是 1 来决定即可,为 0 就是偶数,为 1 就是奇数
- (a |= 1 << i) :将第 i + 1 个二进制位设为 1
- [ a &= ~(1 << i) ] :将第 i + 1 个二进制位设为 0
更多推荐
位运算基础知识及性质(精简总结)
发布评论