更新時間:2020-04-22 14:30:43 來源:動力節點 瀏覽4022次
學習java本來就是一件日積月累的事情,或許你通過自學能掌握一些皮毛技術,學到java的一些基本大面,但想要做到精通,還是需要自己技術的日積月累和工作經驗的不斷積累。
今天給大家分享的技術知識是:Java基礎學習:java中移位運算符
1)“有符號”左移位運算符(<<)能將運算符左邊的運算對象向左移動運算符右側指定的位數(在低位補0)。
左移移位相當于乘以2,例如
3<<2//12則是將數字3左移2位3*2*2=3*(2的2次方)
分析:首先把3轉換為二進制數字00000000000000000000000000000011,然后把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最后在低位(右側)的兩個空位補零。則得到的最終結果是00000000000000000000000000001100,則轉換為十進制是12.數學意義:
在數字沒有溢出的前提下,對于正數和負數,左移一位都相當于乘以2的1次方,左移n位就相當于乘以2的n次方。
2)“有符號”右移位運算符(>>)則將運算符左邊的運算對象向右移動運算符右側指定的位數。“有符號”右移位運算符使用了“符號擴展”:若值為正,則在高位插入0;若值為負,則在高位插入1。
>>運算規則:按二進制形式把所有的數字向右移動對應位數,低位移出(舍棄),高位的空位補符號位,移位后得到的數字為正數則補0,負數補1。
例如11>>2,則是將數字11右移2位
分析:11的二進制形式為:00000000000000000000000000001011,然后把低位的最后兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是00000000000000000000000000000010.轉換為十進制是3.數學意義:右移一位相當于除2,右移n位相當于除以2的n次方。
3)Java也添加了一種“無符號”右移位運算符(>>>),它使用了“零擴展”:無論正負,都在高位插入0
4)右移一位相當于除以2,左移一位(在不溢出的情況下)相當于乘以2;移位運算速度高于乘除運算。
5)位運算符的優先級
~的優先級最高,其次是<<、>>和>>>,再次是&,然后是^,優先級最低的是|
以上就是動力節點java培訓機構的小編針對“Java基礎學習:java中移位運算符”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習