【算法】位运算的学习
一. 什么是位运算
位运算就是直接对整数在内存中的二进制位进行操作。由于位运算直接对内存数据进行操作,所以处理速度很快。
二. 位运算的常见操作
1.与【&】
只有两位都是1,结果才为1.有0就是0.
0110 & 0100 ----------- 0100
2.或【|】
只要有1就是1。
0110 | 0100 ----------- 0110
3. 异或【^】
相同为0,不同为1.
0110 ^ 0100 ----------- 0010
4.取反【~】
0变1,1变0
~ 0110 ----------- 1001
5.<<左移
int a =8 a<<3 移位前:0000 1000 移位后:0100 0000
6.>>右移
int a = 8 a>>3 移位前:0000 1000 移位后:0100 0001
三. 位运算使用技巧
1. 判断整数的奇偶性
if((a & 1)==0){ System.out.println("a是偶数!"); }else { System.out.println("a是奇数!"); }
2.将n位设置位1
y = x | (1<<n)
3.将n位设置为0
y = x & ~(1<<n)
4. 将n位的值取反
y = x ^ (1<<n)
下一篇:
栈实现二叉树迭代遍历