Java运算符初学者
运算符
与(and) 或(or) 非(取反)
public class Dem06 {
//逻辑运算符
public static void main(String[] args){
//与(and) 或(or) 非(取反)
boolean a =true;
boolean b =false;
System.out.println("a && b: "+(b&&a));//逻辑与运算:两个变量都为真 结果输出true
System.out.println("a | | b: "+(a||b));//逻辑或运算:两个变量有一个为真 结果才为true
System.out.println("! (a && b):"+! (a&&b));//逻辑非运算 如果是真,则变为假,如果假 则变为真
//短路运算
int c =4;
boolean d=(c<4)&&(c++<4);
System.out.println(c);
System.out.println(d);
}
}
当c=3时 则输出c=4 d 为true
c=4时 由于c<4不成立 因此输出c=4 d为false(假)
逻辑语言
&&为与
||为或
!为取反
比如我设定
boolan a =true
boolan b =true
//则(“a&&b:”+(b&&a));输出为真
//("a | | b: "+(a||b));输出为真
//("! (a && b):"+! (a&&b));输出为假
//输出a= false b=false
//则&&=假
//||=假
//!为真
短路运算会造成的原因则为
当我设定c跟d 时 c 不满足d的前提 则不计算后一步的运算 直接输出c为我设置的大小 而d 输出则为假
int c =4;
boolean d=(c<4)&&(c++<4);
System.out.println(c);
System.out.println(d);
位运算
public class Dem07 {
public static void main (String [] args){
/*
A= 0011 1100
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 是1则为0 是0则为1
2*8=16 2*2*2*2
<< = *2
>> = /2
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
1 0000 0111 7
0000 1000 8
0001 0000 16
*/
System.out.println(56<<84156465);
}
}
比如我输出5<<2
就会等于20
因为<<已经×2了 后面又加了个2
实则是5×4

浙公网安备 33010602011771号