开发者学堂课程【Java编程入门:位运算】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/18
位运算
位运算指的是可以直接进行二进制的计算处理,主要有:与(&)、或(|)、异或(^)、反码(~)、移位处理。
如果要想理解操作,则一定要清楚十进制与二进制之间的转换处理逻辑:数字除2取余。
13 → 00000000 00000000 00000000 00001101(Java)
÷ 2
6……1
÷ 2
3……0
÷ 2
1……1
÷ 2
0……1
范例:观察与操作,如果两位都是1结果才是1,有1位是0结果就是0。
public class JavaDemo { public static void main(string args[]) { int x = 13 ; int y = 7; System.out.println(x & y) ; } }
|
此编程结果为5。
13的二进制:00000000 00000000 00000000 00001101
7的二进制:00000000 00000000 00000000 00000111
&计算:00000000 00000000 00000000 00000101 →5
范例:观察或运算。有1位是1结果就是1,2位都是0的时候结果才是0。
public class JavaDemo { public static void main(string args[]) { int x = 13 ; int y = 7; System.out.println(x | y) ; } }
|
此编程结果为15。
13的二进制: 00000000 00000000 00000000 00001101
7的二进制: 00000000 00000000 00000000 00000111
|计算: 00000000 00000000 00000000 00001111 →15
在进行位处理的时候还可以进行移位的计算。例如:以2的3次方计算为例。
public class JavaDemo { public static void main(string args[]) { int x = 2 ; System.out.println(x << 2) ; System.out.println(x) ; } }
|
范例:移位处理
2的二进制:00000000 00000000 00000000 00000010
向左移2位:00000000 00000000 00000000 00001000 →8
面试题:请解释&和&&、|和||的区别?
·&和|两个运算符可以进行位运算与逻辑运算;
|-在进行逻辑运算的时候所有的判断条件都要执行;
|-在进行位运算的时候只是针对于当前的数据进行与和或处理;
· 在逻辑运算上还可以使用&&、||;
|-&&:在若干个条件判断的时候,如果前面的条件返回了false,后续所有的条件都不再判断最终的结果就是false;
|-||:在若干个条件判断的时候,如果前面的条件返回了true,后续条件不再执行,最终就是true.