【算法】位运算的学习

一. 什么是位运算

位运算就是直接对整数在内存中的二进制位进行操作。由于位运算直接对内存数据进行操作,所以处理速度很快。

二. 位运算的常见操作

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)
经验分享 程序员 微信小程序 职场和发展