Java基礎---二進制常用運算


                二進制常用運算

簡介:

    邏輯變量之間的運算稱為 邏輯運算二進制數1和0在邏輯上可以代表“真”與“假”、“是”與“否”、“有”與“無”。這種具有邏輯屬性的變量就稱為 邏輯變量。 計算機的邏輯運算的 算術運算的主要區別是:邏輯運算是按位進行的,位與位之間不像加減運算那樣有進位或借位的聯系。
邏輯運算主要包括三種基本運算:邏輯加法(又稱“或”運算)、邏輯乘法(又稱“與”運算)和邏輯否定(又稱“非”運算)。此外,“異或”運算也很有用。 --摘自百度百科
 

詳細介紹:

1.按位與&

  兩位全為1,結果才為1. 例:0&1=0 1&1=1

  作用:

  1.清零

     2.取一個數中指定數: 例:X=10101110 取X得低四位。 X&00001111=0000 1110

2.按位或 |

 只要有一個位1,結果就位1.

 作用:常用來對一個數據的某些位 置1.  例:X=00001001 使X低四位為1 X|0000 1111=00001111

3.異或運算^

 兩個相應位為"異"(值不同),則該位結果為1,否則為0.

 作用:1.使特定位翻轉,找一個數,對應X要翻轉的各位,該數的對應位為1,其余位為0,此數與X對應位 異或即可。

        例:X=10101110 使X低四位翻轉

     X^0000 1111=10100001

    2.與0相異或,保留自身原值。(應用在兩個變量交換值,效率最高)

    例:A=A^B,B=A^B,A=A^B 這樣A和B的值就交換了。

4.取反運算~

對一個二進制數按位取反。~0=1

       例:在java中對有符號int型數取反運算。

  注:在java中有符號整數都是用補碼表示的。

  所以我們還需要了解補碼的知識:

    原碼:一個整數按照絕對值大小轉換成的二進制數稱為原碼。

    反碼

    1.正數的反碼與其原碼相同;
    2.負數的反碼是對其原碼逐位取反,但符號位除外。
    原碼10010= 反碼11101 (10010,1為符號碼,故為負)
    (11101) 二進制= -2 十進制
     補碼
    補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
取反方法:1.對正數:先對其表示的二進制取反,得到負數的補碼;然后求出反碼,最后求出原碼。(即為所求數)
     例:~3
        java中int類型的長度是四個字節,也就是32位,so:
              00000000 00000000 00000000 00000011 
        取反:     1...                                         11111100  最高位為1,所以這是負數的補碼形式。
        求出反碼: 1...                                         11111011
               求出原碼:   0...                                         00000100  數字為4
        之前此數的補碼最高位為1,所以 ~3=-4
     2.對負數:先求負數的補碼,然后直接取反。(注意最高位1代表負數,0代表整數)。
 
此篇為復習基礎知識所寫。
 
        
      

 

 

 

 

 


免責聲明!

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



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