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字串
- 剩餘運算子與展開運算子的區別
- js中的|與 && 運算子詳解JS
- java運算子(超詳細!!!)Java
- C#自增運算子詳解:++i與i++的區別及應用場景C#
- ## 運算子和方法的區別
- PHP7 ?? 與 ?: 的作用和區別(null合併運算子, null條件運算子)PHPNull
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- c語言運算子詳解C語言
- equals與==的區別(詳解)
- TCP與UDP區別詳解TCPUDP
- C++運算子過載詳解C++
- Java 運算子Java
- Java運算子Java
- 詳解iframe與frame的區別
- c++ 和 c 三目運算子區別C++
- java運算子和表示式詳細介紹Java
- synchronized與Lock的區別與使用詳解synchronized
- php運算子運用之型別運算子該如何使用PHP型別
- java基礎一:基本型別,運算子號Java型別
- Java中的資料型別和運算子Java資料型別
- JAVA基礎--資料型別和運算子Java資料型別
- Java位運算子Java
- Java - 3 運算子Java
- Java的運算子Java
- cookie和session的詳解與區別CookieSession
- Kafka與ActiveMQ的區別與聯絡詳解KafkaMQ
- 詳解Kafka與ActiveMQ的區別與聯絡!KafkaMQ
- PHP入門之型別與運算子(一)PHP型別
- Java基礎09:邏輯運算子、位運算子Java
- js運算子 “==” 與 “===”JS
- 講解運算子
- rem與em的使用和區別詳解REM
- xargs 命令詳解,xargs 與管道的區別
- table中cesllspacing與cellpadding的區別詳解padding
- PHP isset()與empty()的使用區別詳解PHP
- cookie與session的區別(圖文詳解)CookieSession
- == 運算子 - Java基礎Java