java入门学习(十一)逻辑运算符和位运算符

请关注我的博客:www.taomaipin.com

 

家里有急事 暂停了几天,抱歉,现在呢开始说说java的运算语句和运算符

如果想利用java的运算语句 那么就离不开java的运算符,前面第九章讲了java的算术运算符,那么现在咱们说说java的逻辑运算符。特别强调一下

我在这里说的是逻辑运算符而不是位运算符,至于什么是位运算符 我后面章节在说。

java的逻辑运算符包括与、或、非,那么咱们说说这四种逻辑运算符以及在运算语句的使用。

第一:与(&&)

先看下面代码

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println((a==6)&&(b==7));

System.out.println((a==6)&&(b==8));

System.out.println((a==1)&&(b==8));

}

首先声明两个变量a和b 并且把6和7赋值给a和b 然后 打印出来的一定是true false false,与(&&)是判断的如果a 和b都为真 那么就是真,如果其

中之一为假 生成的boolea值为false

它的中文意思 你也可以这样理解且的意思 并且的意思,比如a=6&&b=7可以这样理解:a的值为6并且b的值为7或者再声明一个变量c=9;

如果代码写成这样:System.out.println((a==6)&&(b==7)&&(c==9)); 意思是a的值为6 并且b的值为7并且c的值为9满足

所有才会生成一个布尔值true,其中之一不满足就会生成一个布尔值false

第二:或(||)

先看下面代码:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println((a==6)||(b==7));
System.out.println((a==6)||(b==8));
System.out.println((a==8)||(b==7));
System.out.println((a==9)||(b==9));

}

打印结果为true true true false

或的意思是只要其中一个符合 那么生成的布尔值便为true

第三:非(!)

首先看下面代码:

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=6;
int b=7;
System.out.println(a!=6);
System.out.println(a!=12);
System.out.println(b!=7);
System.out.println(b!=90);

}

}

打印结果是

false
true
false
true

非的意思是和实实不符比如a实际上值为6那么我说a的值不是6 我就可以用java代码说a!=6 我说错了 程序就会给返回一个false的布尔值

现在说说 位运算符

&&是短路运算符,&是非短路运算符
 
区别 例如 表达式A && B   如果A返回为false, 该表达式会直接返回false ,将不会再 对B做判断,而&则无论A为什么结果都会去对B进行判断。
 
|| 与 |的区别和上面一样,所以从效率上来讲短路运算符的效率要高于非短路运算符

网上也有人这样解释我感觉非常合适:
位运算符:

    包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符

   以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值

   可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。

   位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:

   表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1

   表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。

   表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。

   表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反

我的博客www.taomaipin.com


posted on 2013-07-31 19:55  you Richer  阅读(377)  评论(0编辑  收藏  举报