一:
!(a&&b)的含义是!a或者!b,例如a==1,b==2,取反则为a!=1或b!=2为true
!(a||b)的含义是!a并且!b,例如a==1,b==2,取反则为a!=1并且b!=2为true
二:
a^=b等价于a=a^b,表示将a和b换算为二进制形式后按位进行异或运算,即遇相同位取0不同位取1。
例题1:
p:False q:True p^q=True
p:True q:False p^q=True
p:True q:True p^q=False
例题2:
a=4,b=2,求a^b
a的二进制位100,b的二进制为10
a^b,为110,即3
三:&与&&,|与||的区别
&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假。但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止
例如:
if(10!=10&10/0==0){
System.out.println("条件满足") ;
}
运行程序时会报错.java.lang.ArithmeticException: / by zero,原因在于&后面的条件也会执行(0不能当被除数)
而
if(10!=10&&10/0==0){
System.out.println("条件满足") ;
}
这不会报错,原因在于后面的条件不会执行
|与||的区别同上。
原文:http://www.cnblogs.com/javaing/p/5037602.html