Java中的三種位移運算子
一直以來位移運算子都用的很少,所以一直忽略了它。不過今天突然明白了規則於是乎就上網翻看了一下別人的一些部落格,驗證了自己的想法,沒想到還真是這樣的,很是欣慰呀,至少以後在看到此類東西不會一頭霧水了。以下內容包含網上查詢的內容
<< 左移運算子
表示式:value << num
左移的規則:
丟棄最高位,0補最低位
按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。
當左移的運算數是int 型別時,每移動1位它的第31位就要被移出並且丟棄;
當左移的運算數是long 型別時,每移動1位它的第63位就要被移出並且丟棄。
當左移的運算數是byte 和short型別時,將自動把這些型別擴大為 int 型。
計算過程:
舉例:8是int型的情況下8<<3結果等於64,相當於8×2的3次方
把8轉換為二進位制數字0000 0000 0000 0000 0000 0000 0000 1000,
把這組數字左移3位則得到的最終結果是0000 0000 0000 0000 0000 0000 0100 0000,>> 右移運算子
表示式:value >> num
左移的規則:
符號位不變,左邊補上符號位
按二進位制形式把所有的數字向右移動對應的位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數補1
當右移的運算數是byte 和short型別時,將自動把這些型別擴大為 int 型。
如果要移走的值為負數,每一次右移都在左邊補1,如果要移走的值為正數,每一次右移都在左邊補0,這叫做符號位擴充套件(保留符號位),在進行右移操作時用來保持負數的符號。
計算過程:
35 >> 2(35為int型)35 >> 2結果等於8,相當於8/2的2次方
35轉換為二進位制:0000 0000 0000 0000 0000 0000 0010 0011
把低位的最後兩個數字移出:0000 0000 0000 0000 0000 0000 0000 1000
轉換為十進位制: 8>>> 無符號右移運算子
表示式:value >>> num
無符號右移的規則只記住一點:忽略了符號位擴充套件,0補最高位
無符號右移運算子>>> 只是對32位和64位的值有意義
補充一下之前欠缺的:0x8f,此16進位制數轉換為二進位制位1000 1111,
通常顏色用16進位制數
例如:0xFBFFFFFF,從左往右FB表示透明度,FFFFFF表示顏色
用二進位制表示就是:
1111 1011 1111 1111 1111 1111
相關文章
- Java培訓教程:Java中的位移運算子!Java
- vue中的三元運算子Vue
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- Java中包含哪些運算子Java
- Java的運算子Java
- java小記-三元運算子Java
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- Java中按位取反運算子Java
- javascript中&&運算子和||運算子的使用JavaScript
- Java 運算子Java
- Java運算子Java
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- 好程式設計師Java學習路線分享Java中的位移運算程式設計師Java
- Linux 各種運算子Linux
- Java中的資料型別和運算子Java資料型別
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- 碎片化學習Java(八)-- Java三元運算子Java
- 碎片化學習Java(九)-- Java三元運算子Java
- Java位運算子Java
- Java - 3 運算子Java
- js中的運算子JS
- python中的運算子Python
- python 的三元運算子Python
- 三元運算子
- 警惕位移運算<<的坑
- Java基礎09:邏輯運算子、位運算子Java
- Java的左移和右移運算子Java
- == 運算子 - Java基礎Java
- Java算術運算子Java
- php7中的三元運算子的區別PHP
- Python 中的特殊運算子Python
- # JavaScript中的 || 與 && 運算子JavaScript
- 【linux】Shell中的運算子Linux
- 【java提高】(17)---Java 位運算子Java
- JavaScript 三元運算子JavaScript
- vue style三級運算子Vue
- Java中的三種代理模式Java模式
- 運算子 運算子