隨筆 - 1, 文章 - 0, 評(píng)論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          2014年8月31日

          java運(yùn)算符1

          java位運(yùn)算符包括 
          &(與)       AND 
          |(或)       OR 
          ^(異或)     XOR 
          ~(非)       NOT 

          位移運(yùn)算符包括 
          >>(右移) 
          <<(左移) 
          >>>(右移,左邊空出的位以0填充) 
          顧名思義,位運(yùn)算符用于位運(yùn)算,那就只能對(duì)整型或者字符型進(jìn)行運(yùn)算。而除了~(非)是一元運(yùn)算符之外其他的都為二元運(yùn)算符。 

          所有位運(yùn)算都會(huì)把值轉(zhuǎn)為二進(jìn)制進(jìn)行運(yùn)算 

          &(與) 
            運(yùn)算規(guī)則:0&0=0   0&1=0  1&0=0   1&1=1 
            即:兩位同時(shí)為1時(shí),結(jié)果為1,否則為0 

            
          Java代碼  收藏代碼
          1. int a=(3&5);  
          2. System.out.println(a);  
          3. System.out.println(Integer.toBinaryString(3));   
          4. System.out.println(Integer.toBinaryString(5));   


             結(jié)果打印為 
                1 
               011 
               101 
              解析:3的二進(jìn)制為011,5的二進(jìn)制為101,與操作結(jié)果為001。轉(zhuǎn)為十進(jìn)制是1。 


          |(或) 
                運(yùn)算規(guī)則: 0|0=0   0|1=1  1|0=1   1|1=1 
               即:參加運(yùn)算的兩個(gè)對(duì)象只要有一個(gè)為1,其結(jié)果就為1 

             
          Java代碼  收藏代碼
          1. int a=(3|5);  
          2. System.out.println(a);  
          3. System.out.println(Integer.toBinaryString(3));   
          4. System.out.println(Integer.toBinaryString(5));   


             結(jié)果打印為 
               7 
              011 
              101 

              解析:3的二進(jìn)制位011,5的二進(jìn)制位101?;虿僮鹘Y(jié)果為111。轉(zhuǎn)為10進(jìn)制為7 


          ^(異或) 
              運(yùn)算規(guī)則:1^0=0   0^1=1   1^0=1   1^1=0 
                   即:參加運(yùn)算的兩個(gè)對(duì)象,如果兩個(gè)個(gè)相應(yīng)位為“異”(值不同),則該位結(jié)果為1,否則為0 

             
          Java代碼  收藏代碼
          1. int a=(3^5);  
          2. System.out.println(a);  
          3. System.out.println(Integer.toBinaryString(3));   
          4. System.out.println(Integer.toBinaryString(5));   

              
              結(jié)果打印為 
                    6 
                 011 
                 101 

              解析:3的二進(jìn)制位011,5的二進(jìn)制位101?;虿僮鹘Y(jié)果為110。轉(zhuǎn)為10進(jìn)制為6 


          ~(非) 
              運(yùn)算規(guī)則:~1=0   ~0=1          
                  即:對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即0變?yōu)?,1變?yōu)? 

              ~運(yùn)算符的優(yōu)先級(jí)比算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和其他運(yùn)算符都高 

          <<(左移) 
              將一個(gè)運(yùn)算符對(duì)象的各二進(jìn)制位全部左移諾干位(左邊的二進(jìn)制位丟棄,右邊補(bǔ)0) 
               操作數(shù)每左移一位,相當(dāng)于該數(shù)乘以2 
             
          Java代碼  收藏代碼
          1. int a=(3<<2);  
          2. System.out.println(a);  
          3. System.out.println(Integer.toBinaryString(3));   
          4. System.out.println(Integer.toBinaryString(12));   

              
              結(jié)果打印為 
                   12 
                  11 
                  1100 

              解析:此運(yùn)算符的意思就是把3的二進(jìn)制位全部左移兩位,右邊補(bǔ)2個(gè)0。3的二進(jìn)制位11,左移兩位后,右邊補(bǔ)2個(gè)0就是1100。1100轉(zhuǎn)為10進(jìn)制為12。 
               說(shuō)到底左移操作就相當(dāng)于2的2次方×3。 每左移1位次方就增1 


          >>(右移) 
          將一個(gè)數(shù)的各二進(jìn)制位全部右移諾干位,正數(shù)左補(bǔ)0,負(fù)數(shù)左補(bǔ)1,右邊丟棄。 
          操作數(shù)每右移一位,相當(dāng)于該數(shù)除以2 

          Java代碼  收藏代碼
          1. int a=(9>>1);  
          2. System.out.println(a);  
          3. System.out.println(Integer.toBinaryString(9));   
          4. System.out.println(Integer.toBinaryString(4));   

              
              結(jié)果打印為 
                   4 
                  1001 
                  100 
               
              解析:9的二進(jìn)制為1001,右移1位后,左正數(shù)補(bǔ)0,右邊丟棄。結(jié)果為 0100。轉(zhuǎn)為10進(jìn)制后為4。

          posted @ 2014-08-31 23:16 小華灬打醬油 閱讀(98) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 兰西县| 沁水县| 大新县| 海淀区| 崇信县| 肇庆市| 教育| 邹城市| 汪清县| 洛宁县| 廉江市| 冷水江市| 张家川| 博客| 兴安盟| 海淀区| 桃园市| 亚东县| 盐津县| 修水县| 邢台市| 土默特右旗| 荣昌县| 济南市| 凌海市| 加查县| 茂名市| 房产| 正阳县| 禄劝| 凌云县| 延边| 南康市| 丹棱县| 抚顺市| 桐乡市| 双流县| 贺州市| 武鸣县| 佛山市| 三门峡市|