Java運算子>>與>>>區別詳解
1、>>
帶符號右移(相當於除以2)。正數右移高位補0,負數右移高位補1。比如:
4 >> 1
,4的原碼為0000 0000 0000 0000 0000 0000 0000 0100
,右移一位後為0000 0000 0000 0000 0000 0000 0000 0010
,轉成十進位制為2。
-4 >> 1
,-4的原碼為1000 0000 0000 0000 0000 0000 0000 0100
,補碼為1111 1111 1111 1111 1111 1111 1111 1100
,右移一位後為1111 1111 1111 1111 1111 1111 1111 1110
,再轉成原碼為1000 0000 0000 0000 0000 0000 0000 0010
,轉成十進位制為-2。
2、>>>
無符號右移。無論是正數還是負數,高位通通補0。比如:
4 >>> 1
,4的原碼為0000 0000 0000 0000 0000 0000 0000 0100
,右移一位後為0000 0000 0000 0000 0000 0000 0000 0010
,轉成十進位制為2。
-4 >>> 1
,-4的原碼為1000 0000 0000 0000 0000 0000 0000 0100
,補碼為1111 1111 1111 1111 1111 1111 1111 1100
,右移一位後為0111 1111 1111 1111 1111 1111 1111 1110
,由於右移後符號位為1,即變成正數,所以原碼與補碼一樣為0111 1111 1111 1111 1111 1111 1111 1110
,轉成十進位制為2147483646。
原文地址:https://blog.csdn.net/jy1690229913/article/details/88574339
相關文章
- 運算子與= 區別
- java短路運算子和邏輯運算子的區別Java
- Java 運算子詳解與字串處理技巧Java字串
- 剩餘運算子與展開運算子的區別
- js中的|與 && 運算子詳解JS
- 移位運算子詳解
- JavaScript 運算子規則與隱式型別轉換詳解JavaScript型別
- java運算子(超詳細!!!)Java
- Java的位運算子詳解例項——與(&)、非(~)、或(|)、異或(^)Java
- C#自增運算子詳解:++i與i++的區別及應用場景C#
- ## 運算子和方法的區別
- Java中Vector與ArrayList的區別詳解Java
- PHP7 ?? 與 ?: 的作用和區別(null合併運算子, null條件運算子)PHPNull
- c語言運算子詳解C語言
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- Java:比較運算子compareTo()、equals()、==之間的區別與應用總結Java
- java中運算子與表示式Java
- 【java資料型別和運算子】Java資料型別
- C++運算子過載詳解C++
- JavaScript資料型別與運算子JavaScript資料型別
- Java 運算子Java
- Java運算子Java
- TCP與UDP區別詳解TCPUDP
- equals與==的區別(詳解)
- 詳解not in與not exists的區別與用法
- c++ 和 c 三目運算子區別C++
- C++中運算子 &和&&、|和|| 的區別C++
- java移位運算子具體解釋Java
- JS逗號運算子的用法詳解JS
- python 三元運算子詳解Python
- javaScript資料型別與typeof運算子JavaScript資料型別
- php運算子運用之型別運算子該如何使用PHP型別
- java運算子和表示式詳細介紹Java
- 詳解iframe與frame的區別
- Java位運算子Java
- Java的運算子Java
- Java 運算子 % 和 /Java
- Java - 3 運算子Java