移位運算子詳解
轉自:http://wenku.baidu.com/view/35d6763c5727a5e9856a6198.html
移位運算子就是在二進位制的基礎上對數字進行平移。
按照平移的方向和填充數字的規則分為三種:
<<(左移)、>>(帶符號右移)和>>>(無符號右移)。
在移位運算時,byte、short和char型別移位後的結果會變成int型別,對於byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就是移位33次和移位1次得到的結果相同。移動long型的數值時,規定實際移動的次數是移動次數和64的餘數,也就是移動66次和移動2次得到的結果相同。
三種移位運算子的移動規則和使用如下所示:
<<運算規則:
按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。
語法格式:
需要移位的數字 << 移位的次數
例如: 3 << 2,則是將數字3左移2位
計算過程:
3 << 2
首先把3轉換為二進位制數字
0000 0000 0000 0000 0000 0000 0000 0011,
然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是
0000 0000 0000 0000 0000 0000 0000 1100,
則轉換為十進位制是12.
>>運算規則:
按二進位制形式把所有的數字向右移動對應位數,低位移出(捨棄),
高位的空位補符號位,即正數補零,負數補1.
語法格式:
需要移位的數字 >> 移位的次數
例如11 >> 2,則是將數字11右移2位
計算過程:
11的二進位制形式為:
0000 0000 0000 0000 0000 0000 0000 1011,
然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終
結果是:
0000 0000 0000 0000 0000 0000 0000 0010.
轉換為十進位制是2.
>>>運算規則:
按二進位制形式把所有的數字向右移動對應位數,低位移出(捨棄),高位的空位補零。
無論正數還是負數都在高位插入0;
相關文章
- 如何利用~ & ^ | + 及移位運算子來實現 ! 的功能
- c語言運算子詳解C語言
- js中的|與 && 運算子詳解JS
- C++運算子過載詳解C++
- Java運算子>>與>>>區別詳解Java
- 孫海洋老師C語言零基礎自學入門 ----移位運算子及移位表示式C語言
- Java 運算子詳解與字串處理技巧Java字串
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- 講解運算子
- java運算子(超詳細!!!)Java
- Python3中*和**運算子的用法詳解!Python
- 運算子 運算子
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- 運算子-賦值運算子賦值
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- 運算子
- java運算子和表示式詳細介紹Java
- C語言運算子深度解析--超詳細C語言
- javascript中&&運算子和||運算子的使用JavaScript
- 算術運算子裡的特殊運算子
- Python 運算子優先順序 運算子Python
- 你真的瞭解js運算子嗎JS
- 過載運算子、解構函式函式
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- php運算子運用之型別運算子該如何使用PHP型別
- C++ 迭代器運算子 箭頭運算子->C++
- JS-11 運算子之布林運算子JS
- C++11運算子過載詳解與向量類過載例項(<<,>>,+,-,*等)C++
- Java 運算子Java
- Java運算子Java
- js運算子JS
- JavaScript in 運算子JavaScript
- 身份運算子
- JavaScript運算子JavaScript
- oracle運算子Oracle
- JavaScript -= 運算子JavaScript