黑马程序员技术交流社区
标题:
关于运算符的小结
[打印本页]
作者:
木木三
时间:
2015-9-16 21:12
标题:
关于运算符的小结
赋值运算,逻辑运算与位运算:
class ReviewDemo{
public static void main(String[] args){
int a=4,b,c;
//赋值(=)运算
b = a++; //先将a=4赋给b,a再++变为5,
c = ++a; //a先++变为6,再将其值赋给c
sop(a); //6
sop(b); //4
sop(c); //6
//异或(^)运算,以二进制数据作为运算基础
sop(b<a ^ a==c); //true ^ true, false
sop(b<a ^ a!=c); //true ^ false, true
sop(b>a ^ a==c); //false ^ true, true
sop(b>a ^ a!=c); //false ^ false, false
sop(b^c); // b:0100,c:0110,2;
//b^c,转成二进制后运算,即0100
//^ 0110
// 0010,相同则为false,不同则为true。
//&&运算(AND短路)
sop(b<a && a==c); //true && true, true
sop(b<a && a!=c); //true && false, false
sop(b>a && a==c); //false && true, false
sop(b>a && a!=c); //false && false, false
and(); //5
and_2(); //4
//||运算(OR短路),有一个true则为true
sop(b<a || a==c); //true || true, true
sop(b<a || a!=c); //true || false, true
sop(b>a || a==c); //false || true, true
sop(b>a || a!=c); //false || false, false
//位运算符,即将参与运算的字符转换成二进制后按照逻辑运算符执行运算
sop(6&3); //2, 与运算
// 0110
//&0010
//=0010,即2.
sop(6|3); //7, 或运算
// 0110
//|0011
//=0111,即7.
sop(6^3); //5, 异或运算
// 0110
//|0011
//=0101,即5.
//一个数异或同一个数两次,结果还是那个数。(用于加密)
//m = (n^m)^m;
//n = n^(n^m);
}
public static void and(){
int i = 3;
if((i++>5)&(i++<9)){
sop(i);
sop("条件语句执行成功");
}
sop(i); //i执行了两次++,两边都要执行
}
public static void and_2(){
int i = 3;
if((i++>5)&&(i++<9)){
sop(i);
sop("条件语句执行成功");
}
sop(i); //i只执行了一次++,左为false直接短路
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2