java中位運算和移位運算詳解


  一、位運算

(1)按 位 與 &

如果兩個相應的二進制形式的對應的位數都為1,則結果為1,記為同1為1,否則為0。首先我們看一下對正數的運算

      

 

分別看一下正數和負數的具體運算步驟

                  

正數直接取二進制運算,負數取反加一得補碼再運算,得到的結果符號位為0,不需要做任何操                                                                                                                                    作直接給出結果,后面會講到如果結果為負數的情況

 

(2)按位或 |

  有1為1,否則為0

        

 

分別看一下正數和負數的具體運算步驟

       

講一下負數求反和補碼的直接給結果,當運算結果符號位是1為負數,那就需要進行減1操作,再按位取反,這個時候得到的才是正確的結果

 

(3)異或 ^

相同為0,不同為1

       

二、移位運算

(1)左 移 (<< )

 右邊空出的位用0填補高位左移溢出則舍棄該高位。計算機中常用補碼表示數據,注,用補碼計算

       

(2)右 移 (>> )

 左邊空出的位用0或者1填補。正數用0填補,負數用1填補。注:不同的環境填補方式可能不同;低位右移溢出則舍棄該位。

        

(3)無 符 號 右 移 (>>> )

 無符號右移:正數與右移規則一樣,負數的無符號右移,就是相應的補碼移位所得,在高位補0即可

        

 

 

         

原文地址:https://www.cnblogs.com/xiuyu/p/8428963.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM