逻辑运算符和位运算符中都有相似的与、或、非运算符,差别就在于:
逻辑运算符运算完成后,式子的结果是boolean的值,是true或false
位运算符运算完成的结果,不是boolean的值,而是整型。
比如:- int a =3, b=3;
- // 结果是3(因为3跟3的二进制每位都相同,所以与的结果也是一样的)
- System.out.println(a&b);
- // 结果是3(因为3跟3的二进制每位都相同,所以或的结果也是一样的)
- System.out.println(a|b);
- // 结果是-4,因为负数的二进制是正数逐位取反再加1得来的,所以如果正数取反,就等于其负数-1,即-3-1=-4
- System.out.println(~b);
复制代码 逻辑运算符只能用于boolean的值,比如:- boolean a =true, b = false;
- // 结果是false,因为b是false,所以a&b是false
- System.out.println(a&b);
- // 结果是true,因为a是true,所以a|b是true
- System.out.println(a|b);
- // 结果是false,因为啊是true,a的非是false
- System.out.println(!a);
复制代码 |