逻辑运算和位运算
逻辑运算符
package 运算符后面的;
public class 逻辑运算和位运算 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反集合)
boolean a= true;
boolean b= false;
System.out.println(a && b);//与运算,俩个变量都为真时候才为真
System.out.println(a || b);//或运算,两个运算有一个为真就为真
System.out.println(!(a && b));//真反取倒(除了都为假)
/*短路运算中 a&&b与 b&&a
其中a是真 在第一个式子中就要判断b是否为真4
其中b是假 在第二个之子中b是假这个式子就用不着判断a是否为真直接否定
*/
}
}
位运算
与二进制有关的计算
package 运算符后面的;
public class 位运算 {
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
-------------------------------------
A&B(如果两个都为1才为1否则为0)=0000 1100
A|B(对应位都不是0就结果为1)=0011 1101
A^B(如果两个位置相同为0不同为1)=0011 0001
~B(非)=1111 0010
2*8=16-->2*2*2
<<左移 >>右移
*/
System.out.println(2<<3);
/* 二进制的2是 0000 0010 向左移三位后 0001 0000就是2^4=16
所以最简洁的运算最快的就是这种
左移*2
右移/2
*/
}
}
注意事项
package 运算符后面的;
public class 三元运算 {
public static void main(String[] args) {
int a= 10;
int b= 20;
a+=b;//a=a+b
System.out.println(a);
// 字符串连接符 + ,出现String类型就会出现转换
System.out.println(""+a+b);
}
}
在计算中一旦出现String的类型的加法时就会转换计算