J2EE 學(xué)習(xí)

          java struts1、struts2 spring hibernate freemarker ajax fckeditor Mysql MSSQL ORACLE DB2 Websphere jboss
          隨筆 - 11, 文章 - 13, 評(píng)論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          Java中邏輯與,邏輯或,按位與,按位或的區(qū)分

          Java中邏輯與,邏輯或,按位與,按位或的區(qū)分

          一直以來(lái),對(duì)這樣的概念很是模糊,今天總結(jié)了一下

          先說(shuō)說(shuō)邏輯與(&&),邏輯或(||)
          他們是短路形式的,舉例說(shuō)明
          ?int i = 0;
          ?? System.out.println ( i++ == 1 && i++ == 2);//打印false
          ?? System.out.println (i);//打印1
          //這里先判斷i++是否等于1,因?yàn)槭怯易栽?所以這里i++ == 1是錯(cuò)誤的,短路就是說(shuō)不用執(zhí)行后面的i++ == 2了,
          ? 直接返回一個(gè)false,所以這就是最后結(jié)果為什么打印1的原因了
          ?i = 0;//這里重新賦值,為了下面的例子明了
          ?? System.out.println ( ++i == 1 && i++ == 2);//打印false
          ?? System.out.println (i);//打印2
          //而這里剛好相反,++i是等于1的,所以就執(zhí)行了后面的i++ == 2,最終的i的值也就打印2了
          邏輯與是當(dāng)兩邊的運(yùn)算都為true時(shí),才返回true,否則返回false,如果左邊返回false,就直接返回false,不再繼續(xù)執(zhí)行右邊的代碼了
          邏輯或是只要有左邊的時(shí)是true時(shí),就返回true,不再執(zhí)行右邊的代碼,但如果左邊的值為false,則返回右邊運(yùn)算的結(jié)果

          按位與& 按位或|

          它們和邏輯與,邏輯或是一樣的,區(qū)別就是非短路運(yùn)算,即&運(yùn)算符,即使左邊是false,也要執(zhí)行右邊代碼;|即使左邊是true,也要執(zhí)行右邊代碼
          還有一點(diǎn)需要指出的區(qū)別就是
          邏輯與,邏輯或在Java中運(yùn)算符必須是boolean類型的,而按位與,按位或可以是int類型的,
          下面我舉例說(shuō)明他們是如何運(yùn)行的

          ?? System.out.println( 5&3);//(代碼1) 打印結(jié)果1
          ?? System.out.println( 5|3);//(代碼2) 打印結(jié)果7
          ?? System.out.println( 4&2);//(代碼3) 打印結(jié)果0
          ?? System.out.println( 4|2);//(代碼4) 打印結(jié)果6

          二進(jìn)制碼如下:
          //5 101????? 4 100?
          //3 011????? 2 010?
          //& 001??????? 000?
          //| 110??????? 110??

          按位與的運(yùn)算:

          看注釋3對(duì)于注釋1和2,會(huì)發(fā)現(xiàn)除了兩位都是1的時(shí)候,其余情況下&的結(jié)果都是0

          按位或的運(yùn)算:

          兩個(gè)數(shù)中都為0的時(shí)候結(jié)果為0,否則結(jié)果為1
          ?

          posted on 2009-08-13 20:38 李峰 閱讀(1176) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 东台市| 三原县| 尚志市| 八宿县| 会东县| 宁国市| 翁源县| 阜阳市| 炎陵县| 武山县| 上蔡县| 白朗县| 博野县| 嘉禾县| 延川县| 福贡县| 昌平区| 油尖旺区| 于都县| 筠连县| 榕江县| 西宁市| 舞钢市| 齐河县| 准格尔旗| 乐都县| 荣成市| 榆树市| 扶风县| 永泰县| 石屏县| 界首市| 安宁市| 廊坊市| 临澧县| 永泰县| 增城市| 腾冲县| 金秀| 甘南县| 响水县|