Java培訓教程:Java中的位移運算子!
學習Java本來就是一件日積月累的事情,或許你透過自學能掌握一些皮毛技術,透過系統學習學到Java的一些基本大面,但想要做到精通,還是需要自己技術的日積月累和工作經驗的不斷積累。
今天小千給大家分享的技術知識是:java中的位移運算子!
1) “有符號”左移位運算子(<<)能將運算子左邊的運算物件向左移動運算子右側指定的位數(在低位補0)。
左移移位相當於乘以2,例如
3 << 2 //12 則是將數字3左移2位 3*2*2 = 3*(2的2次方)
分析:首先把3轉換為二進位制數字0000 0000 0000 0000 0000 0000 0000 0011,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,則轉換為十進位制是12.數學意義:
在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。
2) “有符號”右移位運算子(>>)則將運算子左邊的運算物件向右移動運算子右側指定的位數。 “有符號”右移位運算子使用了“符號擴充套件”:若值為正,則在高位插入0;若值為負,則在高位插入1。
>>運算規則:按二進位制形式把所有的數字向右移動對應位數,低位移出(捨棄),高位的空位補符號位,移位後得到的數字為正數則補0,負數補1。
例如11 >> 2,則是將數字11右移2位
分析:11的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010.轉換為十進位制是3.數學意義:右移一位相當於除2,右移n位相當於除以2的n次方。
3) Java也新增了一種“無符號”右移位運算子(>>>),它使用了“零擴充套件”:無論正負,都在高位插入0
4)右移一位相當於除以2,左移一位(在不溢位的情況下)相當於乘以2;移位運算速度高於乘除運算。
5)位運算子的優先順序
~的優先順序最高,其次是<<、>>和>>>,再次是&,然後是^,優先順序最低的是|。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2776892/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中的三種位移運算子Java
- 好程式設計師Java培訓分享MySQL算術運算子程式設計師JavaMySql
- Java中包含哪些運算子Java
- java中insteanceof運算子Java
- Java的運算子Java
- Java 運算子Java
- Java運算子Java
- 武漢Java培訓教程之JDBC中的常用介面和類JavaJDBC
- 最新Java培訓-NIO實戰教程Java
- Java中按位取反運算子Java
- java中運算子與表示式Java
- Java培訓:長沙Java培訓機構排名Java
- Java培訓教程之物件的建立與使用Java物件
- Java培訓教程分享:變數與常量Java變數
- Java培訓教程之使用Lock取代synchronizedJavasynchronized
- Java位運算子Java
- Java 運算子 % 和 /Java
- Java - 3 運算子Java
- 好程式設計師Java學習路線分享Java中的位移運算程式設計師Java
- 培訓Java與自學Java的差距Java
- 我的JAVA運算子理解Java
- 【java提高】(17)---Java 位運算子Java
- Java中的資料型別和運算子Java資料型別
- 按位運算子在java中的應用?Java
- Java培訓教程之JDBC URL結構分析JavaJDBC
- Java培訓教程之this關鍵字講解Java
- 深圳Java培訓:Java中的float在記憶體中的儲存Java記憶體
- java短路運算子和邏輯運算子的區別Java
- Java算術運算子Java
- Java 基礎-運算子Java
- == 運算子 - Java基礎Java
- java培訓資料Java
- Java培訓筆記Java筆記
- java培訓內容Java
- java 培訓日記Java
- Python培訓中有哪些是必須學的運算子?Python
- Java的左移和右移運算子Java
- java培訓分享:java培訓架構師學習線路圖Java架構