java基础(第四期)
逻辑运算符,位运算符
B =0000 1101
与 A&B = 0000 1100 二进制数同位比较,只有都为1是才为1,其他都为0
或 A|B = 0011 1101 只有同为0是才为0,其余都是1
非 A^B = 0011 0001 相同时为0,不同时为1
取反 ~B = 1111 0010
常见面试题
2乘8怎么运算最快 2乘8 =16这都知道篇很简单,但计算机不知道呀,计算机可以进行 2乘2乘2乘2,
这对计算机来说是不是很麻烦呐,要是位运算就简单多了,我们可以试一下 System.out.println(2<<3); 也输出的是16。
这种运算效率极高!直接跟底层打交道的
<< 左移 相当于乘2
<<右移 /2
学了无数次忘了无数次的进制
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
package operator;
import java.sql.SQLOutput;
//位运算符
public class Demo06 {
public static void main(String[] args) {
System.out.println(2<<3);
System.out.println(8<<1);
//输出同样的结果
}
}
逻辑运算符
与(and) 或(or) 非(取反)
-
与 && 两个变量都为真结果才为true
-
或 || 两个变量有一个为真结果为true
-
非 ! 如果是真则为假,如果是假则为真
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b));//
System.out.println("a || b:"+(a||b));//
System.out.println("!(a && b):"+!(a&&b));//
短路问题
都知道c<4是错误的,该情况下C++就不会执行,这就是短路问题
int c = 5;
boolean d = (c<4)&&(c++<4);
//希望有朝一日掌握这种实验思维
System.out.println(c);
System.out.println(d);
三元运算符及小结
a+=b为a=a+b a-=b为a=a-b
int a = 10;
int b = 20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
输出结果
10
30
字符串连接类型 "+" 在+两侧只要有一方出现了String类型,
就会把其他类型都转换成 String类型在进行连接
System.out.println(a+b);
System.out.println(""+a+b);
输出结果
30
1020
空在前面输出连接,空在后无影响
System.out.println(""+a+b);
System.out.println(a+b+"");
输出结果
1020
30
三元运算符
x ? y : z //如果x==true,则结果为y,否则结果为z
int score=80;
String type = score<60 ? "不及格":"及格";//必须掌握
System.out.println(type);
输出结果
及格
能简洁代码和提高效率,必须掌握,建议多多练习
多多重复,百炼成钢

浙公网安备 33010602011771号